-1

我正在研究 Java Swing 和侦听器的使用,但以下简单代码存在一些问题:

package com.mycompany.experiment;

import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ListenerExp1 {

    private class MyButtonListener implements ActionListener {
        public void actionPerformed(ActionEvent evt) {
            // Qui scriviamo il codice che vogliamo eseguire all' azione del
            // click sul pulsante
        }
    }

    JFrame frame = new JFrame("FrameDemo");
    frame.setMinimumSize(new Dimension(800, 400));

    JButton button = new JButton("Cliccami");
    MyButtonListener listener = new MyButtonListener();

    button.addActionListener(listener);

}

在这段代码中,我声明了一个侦听器类,并尝试创建一个 JFrame 和一个 JButton 对象。

问题是当我尝试通过以下行向这些对象添加一些属性时:

frame.setMinimumSize(new Dimension(800, 400));

button.addActionListener(listener);

Eclipse 在这两行给我签名以下错误:

此行有多个标记 - 标记上的语法错误,错位的构造 - 标记“setMinimumSize”上的语法错误,= 在此之后预期

怎么了?

肿瘤坏死因子

安德烈亚

4

2 回答 2

2

这些语句应该在代码块中,例如方法和构造函数

JFrame frame = new JFrame("FrameDemo");
frame.setMinimumSize(new Dimension(800, 400));

JButton button = new JButton("Cliccami");
MyButtonListener listener = new MyButtonListener();

button.addActionListener(listener);

另外你想像这样调用EDT它们

SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            JFrame frame = new JFrame("FrameDemo");
            frame.setMinimumSize(new Dimension(800, 400));

            JButton button = new JButton("Cliccami");
            MyButtonListener listener = new MyButtonListener();

            button.addActionListener(listener);
        }
    });

阅读:初始线程

于 2013-09-24T09:37:03.230 回答
1

在java中,你不能在没有方法或在方法之外初始化实例。

将以下代码放入方法中。

JFrame frame = new JFrame("FrameDemo");
frame.setMinimumSize(new Dimension(800, 400));

JButton button = new JButton("Cliccami");
MyButtonListener listener = new MyButtonListener();

button.addActionListener(listener);
于 2013-09-24T09:42:57.257 回答