编辑问题以包括所需的行为、特定问题或错误,以及再现问题所需的最短代码。这将帮助其他人回答这个问题。
我只是想让按钮在控制台中显示一些文本,但不管我做什么,这里都没有用的是button类的代码:
public class Button extends JButton implements ActionListener {
JButton button;
Button (){
button = new JButton();
this.setText("Click NOW");
button.addActionListener(this);
this.setForeground(Color.white);
button.setBounds(300, 100, 100, 50);
this.setBackground(Color.red);
this.setBorder(null);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource()== button) {
System.out.println("Display if you work");
}
}
}
没有显示错误,代码编译正确,只是没有在终端中显示文本。
在actionPerformed方法中,在if语句中使用equals,如下所示:
if (e.getSource().equals(button)) {
System.out.println("Display if you work");
}
它应该可以工作在这种情况下不起作用。
这段代码创建了两个jbutton,一个是类内的按钮字段,您可以将动作侦听器添加到其中:
public class Button extends JButton implements ActionListener {
JButton button; // here!
Button (){
button = new JButton(); // here!
this.setText("Click NOW");
button.addActionListener(this); // and add the listener here
另一个是扩展JButton的类的实例:
// here !!!
public class Button extends JButton implements ActionListener {
// ....
这可能就是在其他地方显示的代码:
Button button = new Button();
然后将此按钮添加到GUI。同样,这个“button”来自您的button类,它扩展了JButton,但没有添加动作侦听器。
您可以通过以下两种方式之一解决此问题:
public class Button1 extends JButton implements ActionListener {
// JButton button;
Button1() {
// button = new JButton();
this.setText("Click NOW");
// button.addActionListener(this);
this.addActionListener(this);
this.setForeground(Color.white);
// button.setBounds(300, 100, 100, 50); // You really don't want to do
// this
this.setBackground(Color.red);
this.setBorder(null);
}
@Override
public void actionPerformed(ActionEvent e) {
// no need for the if block
// if (e.getSource() == button) {
System.out.println("Display if you work");
// }
}
}
我自己使用数字2,使其成为一个方法,返回一个包含我感兴趣的属性的按钮:
private JButton createMyButton(String text) {
JButton button = new JButton(text);
button.setForeground(Color.WHITE);
button.setBackground(Color.RED);
button.setBorder(null);
button.addActionListener(e -> {
System.out.println("Display if you work");
});
return button;
}
旁注:
因此,您最好学习和使用布局管理器。您可以在此处找到布局管理器教程:布局管理器教程,您还可以在此处找到Swing教程和其他Swing资源的链接:Swing Info。
我只是想让按钮在控制台中显示一些文本,但不管我做什么,这里都没有用的是button类的代码: 没有显示错误,代码编译正确,只是没有在终端中显示文本。
问题内容: 我正在尝试为我的RadioGroup创建一个onCheckedChanged侦听器,但是日食给我带来了麻烦。这是代码 并且从eclipse出现错误,建议将其更改为setOnClickListener / setOnDragListener以及其他。 在上面告诉我要添加未实现的方法,当我选择该选项时,它会添加以下内容: 所以我最终得到了这个: 它告诉我从我编写的方法中删除注释。 有人知道
问题内容: 我有主要的应用程序在哪里与值表。然后,我单击“添加”按钮,新的CUSTOM(我自己创建)出现了JDialog类型弹出窗口。在这里,我可以输入值,打一些勾,然后单击“确认”。因此,我需要从对话框中读取该输入,以便可以将此值添加到主应用程序中的表中。按下“确认”按钮时如何收听,以便在此之后可以读取该值? 问题答案: 如果在用户按下后对话框消失,请确认: 你希望有对话的行为如同一个 模态 的
@override public void actionPerformed(ActionEvent e){ }
我想根据单选按钮的选择设置文本框的可编辑选项?如何对单选按钮上的动作监听器进行编码?
我做了一个简单的排序函数,但由于某种原因,它仍然返回原始列表。