Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java actionPerformed无法查看JButtons的引用变量_Java_Swing - Fatal编程技术网

Java actionPerformed无法查看JButtons的引用变量

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

我一直在试着让两个按钮工作。 然而,actionPerformed似乎看不到我的按钮

我尝试过的事情: -检查我的导入语句,它们似乎是正确的 -检查是否缺少括号 -检查我是否意外地在构造函数中执行了操作 -选中访问修饰符 -检查变量名

到目前为止,我不明白为什么它不能解决按钮1和按钮2的符号

请帮忙

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