Mysql
 sql >> Baza danych >  >> RDS >> Mysql

ScrollPane dodawanie do układu siatki

Zacznij od dodania przycisków do ich własnego kontenera, w ten sposób możesz kontrolować układ przycisków niezależnie od reszty interfejsu użytkownika

    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);
    }

Następnie dodaj panel „główny” do NORTH położenie ramki i panelu "przycisków" w CENTER

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

Pamiętaj, że w tym przypadku bardzo kusi mnie użycie czegoś takiego jak JList zamiast. Zobacz Jak korzystać z list po więcej szczegółów

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

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

Konkurują one ze sobą, przesuwając zawartość i nakładając się na istniejącą zawartość...

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);

}

W tym przypadku wolałbym użyć JList aby pokazać projekty lub WrapLayout do rozmieszczenia przycisków



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CakePHP 3 - Parse Date z LocalStringFormat do poprawnego formatu SQL i poprawnej walidacji

  2. niebuforowane zapytanie z MySQLi?

  3. Jak dodać niestandardową kolumnę w siatce sprzedaży/zamówień w Magento?

  4. Przewodnik dla manekinów po blokowaniu w innodb

  5. Wstaw do wielu tabel w jednym zapytaniu