sql >> Databáze >  >> RDS >> Mysql

Přidání ScrollPane do rozložení mřížky

Začněte přidáním tlačítek do jejich vlastního kontejneru. Tímto způsobem můžete ovládat rozložení tlačítek odděleně od zbytku uživatelského rozhraní

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

Poté přidejte „hlavní“ panel do NORTH pozici rámečku a panelu "tlačítek" na CENTER

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

Uvědomte si, že v tomto případě bych byl velmi v pokušení použít něco jako JList namísto. Viz Jak používat seznamy pro více podrobností

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

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

Ty mezi sebou soutěží, přesouvají obsah a překrývají se s existujícím obsahem...

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

}

V tomto případě bych raději použil buď JList zobrazit projekty nebo WrapLayout pro rozložení tlačítek



  1. DELETE pomocí LEFT JOIN s LIMIT v MySQL

  2. převod dotazu MySQL na syntaxi Codeigniter

  3. Varování:PDOStatement::execute():SQLSTATE[HY093]:Neplatné číslo parametru:parametr nebyl definován v...text souboru

  4. Načtení odpovídajícího kontextu fulltextového vyhledávání MySQL v PHP (a zabezpečení)