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

时间:2017-02-13 23:08:10

标签: java panel jtogglebutton

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

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

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

的Category类
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.
    } 

1 个答案:

答案 0 :(得分:0)

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

public class Category extends JToggleButton implements ActionListener {

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

另外,如果我没弄错,按钮不需要设置为可见。