我只是想让按钮在控制台中显示一些文本,但不管我做什么,这里都没有用的是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,但没有添加动作侦听器。
您可以通过以下两种方式之一解决此问题:
this
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信息。
编辑问题以包括所需的行为、特定问题或错误,以及再现问题所需的最短代码。这将帮助其他人回答这个问题。 我只是想让按钮在控制台中显示一些文本,但不管我做什么,这里都没有用的是button类的代码: 没有显示错误,代码编译正确,只是没有在终端中显示文本。
我有一个按钮,我给了角半径属性。在xml代码中,应用程序似乎是弯曲的,但当我运行应用程序时,按钮是矩形的。 我也用材质按钮代替了这个按钮,但还是发生了同样的事情。它在XML设计中似乎是弯曲的,但在应用程序中却不是。
问题内容: 我有主要的应用程序在哪里与值表。然后,我单击“添加”按钮,新的CUSTOM(我自己创建)出现了JDialog类型弹出窗口。在这里,我可以输入值,打一些勾,然后单击“确认”。因此,我需要从对话框中读取该输入,以便可以将此值添加到主应用程序中的表中。按下“确认”按钮时如何收听,以便在此之后可以读取该值? 问题答案: 如果在用户按下后对话框消失,请确认: 你希望有对话的行为如同一个 模态 的
@override public void actionPerformed(ActionEvent e){ }
我想根据单选按钮的选择设置文本框的可编辑选项?如何对单选按钮上的动作监听器进行编码?
我有组织。postgresql。util。PSQLException:错误:关系“roles”不存在,我不知道为什么。 实体类 资源/META-INF/持久性。xml 在我有 那么为什么我有这样的错误,为什么会这样?我读过这个问题,它对我没有帮助。