以编程方式创建 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());
}
此外,如果我没记错的话,按钮不需要设置为可见。
我正在开发一个软件,用户在使用之前必须根据用户的需要设置软件。
当用户单击菜单项时,软件会抛出 JDialog 并要求用户输入,软件会存储输入。这很好用。接下来我遇到了问题。我想要一个面板内的切换按钮(用户输入的文本作为其标签)。我尝试使用 categoryPanel.add(C.getCategoryButton)
但它没有用。请帮忙!提前致谢。
这是我所做的... 我创建了一个扩展 JToggleButton
的类别 classpublic 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());
}
此外,如果我没记错的话,按钮不需要设置为可见。