以编程方式创建 JToggleButton 并将其添加到面板

Creating and adding JToggleButton to a panel programmatically

我正在开发一个软件,用户在使用之前必须根据用户的需要设置软件。

当用户单击菜单项时,软件会抛出 JDialog 并要求用户输入,软件会存储输入。这很好用。接下来我遇到了问题。我想要一个面板内的切换按钮(用户输入的文本作为其标签)。我尝试使用 categoryPanel.add(C.getCategoryButton) 但它没有用。请帮忙!提前致谢。

这是我所做的... 我创建了一个扩展 JToggleButton

的类别 class
public class Category extends JToggleButton implements ActionListener
{
    private JToggleButton categoryButton;


    public JToggleButton getCategoryButton()
    {
        buildCategoryButton();
        return categoryButton;
    }

    private void buildCategoryButton()
    {
        categoryButton = new JToggleButton();
        categoryButton.setText(MainFrame.getUserInput());
        categoryButton.setVisible(true);
    }

这是调用 getCategoryButton() 方法的地方

private void catCapBtnActionPerformed(java.awt.event.ActionEvent evt) {                                          
        // TODO add your handling code here:
        userInput = catCapTextField.getText(); //works fine
        Category C = new Category();
        categoryPanel.add(C.getCategoryButton()); //doesn't work
        validate();

        catCapture.setVisible(false);//this closes the JDialog, and it works fine.
    } 

当您扩展 JToggleButton 时,您创建的类别 class 将成为 JToggleButton 的一个实例。因此,您不需要 JToggleButton 的私有实例。我建议如下:

public class Category extends JToggleButton implements ActionListener {

    public Category() {
        super(MainFrame.getUserInput());
    }

此外,如果我没记错的话,按钮不需要设置为可见。