Java actionPerformed无法查看JButtons的引用变量
我一直在试着让两个按钮工作。 然而,actionPerformed似乎看不到我的按钮 我尝试过的事情: -检查我的导入语句,它们似乎是正确的 -检查是否缺少括号 -检查我是否意外地在构造函数中执行了操作 -选中访问修饰符 -检查变量名 到目前为止,我不明白为什么它不能解决按钮1和按钮2的符号 请帮忙Java actionPerformed无法查看JButtons的引用变量,java,swing,Java,Swing,我一直在试着让两个按钮工作。 然而,actionPerformed似乎看不到我的按钮 我尝试过的事情: -检查我的导入语句,它们似乎是正确的 -检查是否缺少括号 -检查我是否意外地在构造函数中执行了操作 -选中访问修饰符 -检查变量名 到目前为止,我不明白为什么它不能解决按钮1和按钮2的符号 请帮忙 import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.event.ActionListe
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
public class Wisselscherm
extends JFrame
implements ActionListener {
public Wisselscherm(Wisselkoers wisselkoers){
String munt1 = String.valueOf(wisselkoers.getMunt1().getNaam() );
String munt2 = String.valueOf(wisselkoers.getMunt2().getNaam() );
setTitle(munt1 + " - " + munt2 + " Converter" );
setSize(500,500);
setLayout(new FlowLayout());
String teken1 = String.valueOf(wisselkoers.getMunt1().getTeken() );
JLabel munteenheid1 = new JLabel(teken1);
add(munteenheid1);
JTextField textf1 = new JTextField(10);
add(textf1);
JButton button1 = new JButton(">>");
add(button1);
button1.addActionListener(this);
JButton button2 = new JButton("<<");
button2.addActionListener(this);
add(button2);
String teken2 = String.valueOf(wisselkoers.getMunt2().getTeken() );
JLabel munteenheid2 = new JLabel(teken2);
add(munteenheid2);
JTextField textf2 = new JTextField(10);
add(textf2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
System.out.println("Button1 is pressed");
} else if (e.getSource() == button2) {
System.out.println("Button2 is pressed");
}
}
}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
导入java.awt.event.ActionListener;
公共类Wisselscherm
扩展JFrame
实现ActionListener{
公共Wisselscherm(Wisselkoers Wisselkoers){
String munt1=String.valueOf(wisselkours.getMunt1().getNaam());
String munt2=String.valueOf(wisselkours.getMunt2().getNaam());
setTitle(munt1+“-”+munt2+“转换器”);
设置大小(500500);
setLayout(新的FlowLayout());
String teken1=String.valueOf(wisselkoers.getMunt1().getTeken());
JLabel munteenheid1=新JLabel(teken1);
添加(munteenheid1);
JTextField textf1=新的JTextField(10);
添加(textf1);
JButton button1=新JButton(“>>”);
添加(按钮1);
按钮1.addActionListener(此按钮);
JButton button2=new JButton(您的按钮被定义为Wisselscherm
的构造函数的局部变量,因此在其上下文之外无法访问它们
你可以。。。
使它们成为实例变量,这将允许从整个类中访问它们
你可以。。。
使用,这将允许您将单个侦听器与每个按钮关联,这意味着您可以查看是什么触发了ActionListener
你可以。。。
利用JButton
和ActionEvent
的actionCommand
属性将侦听器与事件源解耦,允许您将ActionListener
与生成相同actionCommand
的其他按钮/操作一起重复使用
默认情况下,actionCommand
将是按钮的文本(如果没有直接设置)
你可以。。。
使用操作
API
在或中,您可能应该仔细查看,有关更多详细信息,您的按钮被定义为Wisselscherm
构造函数的局部变量,因此在其上下文之外无法访问它们
你可以。。。
使它们成为实例变量,这将允许从整个类中访问它们
你可以。。。
使用,这将允许您将单个侦听器与每个按钮关联,这意味着您可以查看是什么触发了ActionListener
你可以。。。
利用JButton
和ActionEvent
的actionCommand
属性将侦听器与事件源解耦,允许您将ActionListener
与生成相同actionCommand
的其他按钮/操作一起重复使用
默认情况下,actionCommand
将是按钮的文本(如果没有直接设置)
你可以。。。
使用操作
API
在或中,您可能应该仔细查看,有关更多详细信息,这是一个范围问题,只需将按钮1
和按钮2
移动到类的范围级别:
public class Wisselscherm extends JFrame implements ActionListener {
JButton button1;
JButton button2;
...
然后你可以有:
button1 = new JButton(">>");
(请注意,我删除了该行中的JButton
单词)这是一个范围问题,只需将按钮1
和按钮2
移动到类的范围级别:
public class Wisselscherm extends JFrame implements ActionListener {
JButton button1;
JButton button2;
...
然后你可以有:
button1 = new JButton(">>");
(请注意,我删除了该行中的JButton
word)好的,必须有人向我解释否决投票的目的。由于没有其他答案被否决,我只能假设你对我的答案有异议。在哪些方面它不能回答老年退休金计划的问题?在哪些方面可以改进?由于没有提供新的答案,我只能假设你不知道如何回答还有一个问题是,你怎么知道这个答案不正确呢?嗯,别担心下面的投票。你有两张赞成票来抵消它,一张是我的。@HovercraftFullOfEels总是在寻求改进-不能取悦所有人:p这就是我为什么不尝试的原因。哇,比我想象的要多得多。谢谢!(我还不能投票,否则你会得到一个)好的,有人必须向我解释否决投票的目的。由于没有其他答案被否决,我只能假设你对我的答案有异议。在哪些方面它不能回答老年退休金计划的问题?在哪些方面可以改进?由于没有提供新的答案,我只能假设你不知道如何回答还有一个问题,你怎么知道这个答案是不对的呢?嗯,别担心落选。你有两张得票来抵消它,一张是我投的。@HovercraftFullOfEels总是在寻求改进-不能取悦所有人:p这就是我为什么不尝试的原因。哇,比我想象的要多得多。谢谢!(我还不能投票,否则你会得到一个)@HovercraftFullOfEels谢谢你的编辑,我以前没有看到过代码问题:)但是我会双重声明它们?按照您的方式尝试,我会得到一个:Cannot Groovy files错误。@Jaqen请查看编辑。因此,答案是否,您没有声明twiceNope,程序仍然会出错。错误:无法编译Groovy文件:没有为模块“Java13”定义Groovy库Hmmm(不使用Groovy,从未接触过它)错误在其他地方:)这两个(和程序员的)答案都解决了您遇到的问题here@HovercraftFullOfEels感谢您的编辑,我以前没有看到代码问题:),但是我会重复声明它们?按照您的方式尝试,我会得到一个:cannotgroovy files错误。@Jaqe