Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thêm ScrollPane vào bố cục lưới

Bắt đầu bằng cách thêm các nút vào vùng chứa của riêng chúng, bằng cách này, bạn có thể kiểm soát bố cục của các nút riêng biệt với phần còn lại của giao diện người dùng

    JPanel panelFullOfButtons = new JPanel();
    try {
        for (int i = 0; i < projectNames.length; i++) {
            buttons[i] = new ProjectButton(projectNames[i]);
            buttons[i].setId(uniqueIds[i]);

            panelFullOfButtons.add(buttons[i]);
            buttons[i].addActionListener(this);

        }
    } catch (Exception e2) {
        JOptionPane.showMessageDialog(null, e2);
    }

Sau đó, thêm bảng "chính" vào NORTH vị trí của khung và bảng "nút" đến CENTER

    frame.add(panel, BorderLayout.NORTH);
    frame.add(new JScrollPane(panelFullOfButtons), BorderLayout.CENTER);

Xin lưu ý bạn, trong trường hợp này, tôi rất muốn sử dụng một thứ gì đó giống như JList thay vì. Xem Cách sử dụng danh sách để biết thêm chi tiết

// Problem #1...
JScrollPane pane = new JScrollPane();
pane.add(buttonPanel);

//...
// Problem #2...
panel.add(pane);
frame.add(panel);

Những thứ này đang cạnh tranh với nhau, di chuyển nội dung xung quanh và chồng chéo với nội dung hiện có ...

public AdminClass() {

    panel.setLayout(new GridLayout(3, 1));

    panel.add(new JLabel("Welcome to Admin Panel"));

    btnNewButton.addActionListener(this);
    panel.add(btnNewButton);

    panel.add(new JLabel("Existing Projects"));

    List<String> projectNameList = new ArrayList<String>();
    for (int index = 0; index < 1000; index++) {
        projectNameList.add("Project " + index);
    }
    projectNames = projectNameList.toArray(new String[0]);

    // Adding buttons to the project
    buttons = new JButton[projectNameList.size()];
    try {
        for (int i = 0; i < projectNames.length; i++) {
            buttons[i] = new JButton(projectNames[i]);

            btnPnl1.add(buttons[i]);
            buttons[i].addActionListener(this);

        }
    } catch (Exception e2) {
        JOptionPane.showMessageDialog(null, e2);
    }

    frame.add(panel, BorderLayout.NORTH);
    frame.add(new JScrollPane(btnPnl1), BorderLayout.CENTER);

    frame.setVisible(true);
    frame.setSize(500, 500);

}

Trong trường hợp này, tôi muốn sử dụng JList để hiển thị các dự án hoặc WrapLayout để bố trí các nút



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Danh sách so với Thiết lập trên JPA 2 - Ưu / Nhược điểm / Tiện lợi

  2. Tìm phòng miễn phí (hệ thống đặt phòng)

  3. Kết hợp bất hợp pháp các đối chiếu trong mySQL

  4. EF Core - Bảng '* .__ EFMigrationsHistory' không tồn tại

  5. Chọn 5 hàng gần đây nhất dựa trên ngày