-4

我收到两个关于端括号的错误。显然,问题在于如何定义动作监听器;检查答案以获得简洁易懂的解决方法。我无法删除这个(可怕的)帖子,所以我试图在事后对其进行编辑,希望我能避免七年前的错误导致我今天的发帖能力。不要问这样的问题,而且,如果你遇到这个问题,请使用与这个问题相关的答案,而不是问你自己的。

package firstframe;
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Font;
import java.util.Properties;
import java.text.*;
import java.util.ArrayList;
public class frame {

    genericclass twelveoclockfix;
    JFrame Frame1;
    JPanel j2;
    JPanel j4;
    JButton b1;
    JButton b2;
    JTextField t1;
    ArrayList<Integer> hour;
    ArrayList<String> minute;
    JComboBox<Integer> t2;
    JComboBox<String> t3;
    JComboBox<String> t4;
    JPanel j1;
    JLabel l1;

    public frame() {
        //twelveoclockfix = new genericclass();
        Frame1 = new JFrame("9gag's own: jClock");
        j2 = new JPanel();
        j4 = new JPanel();
        b1 = new JButton ("Get le Time!");
        b2 = new JButton ("Set le Alarm!");
        t1 = new JTextField(10);
        hour = new ArrayList<Integer>();
        for (int i = 1; i <= 12; ++i) {
            hour.add(i); String.format("%05d", 2);
        }
        minute = new ArrayList<String>();
        for (int i = 01; i <= 59; ++i)
        {
            if (i < 10) {
                minute.add("0" + String.valueOf(i));
            } else {
                minute.add(String.valueOf(i));
            }
        }
        t2 = new JComboBox<>(hour.toArray(new Integer[0]));
        t3 = new JComboBox<>(minute.toArray(new String[0]));
        t4 = new JComboBox<>(new String[]{"AM", "PM"});
        j1 = new JPanel (new FlowLayout());
        l1 = new JLabel ("time in comic sans:");
        j1.add(l1);
        j1.add(t1);
        j2.add(b1);
        j4.add(b2);
        j4.add(t2);
        j4.add(t3);
        j4.add(t4);
        l1.setFont(new Font("Comic Sans MS",Font.PLAIN,20));
        t1.setFont(new Font("Comic Sans MS",Font.PLAIN,20));
        b1.setFont(new Font("Comic Sans MS",Font.PLAIN,20));
        Frame1.add(j1);
        Frame1.add(j2);
        Frame1.add(j4);
        Frame1.setLayout(new FlowLayout());
        Frame1.setSize(400,150);
        Frame1.setVisible(true);
        Frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        b2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
        b1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                t1.setText(""+genericclass.twelveoclockfix + ":" + genericclass.minfixed + " " + genericclass.AMPMtxt);
                System.out.println(t2.getSelectedItem());
                JOptionPane.showMessageDialog(Frame1, "Le 9gag army waz h3r3!");

            }});


    }
}
4

1 回答 1

2

这很奇怪:你有 2 个 addActionListener(),一个在另一个里面。我认为您的错误在这里:您关闭了第二个,但没有关闭第一个。

您的部分代码有错误:

            b2.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {
            b1.addActionListener(new ActionListener() {
                    public void actionPerformed(ActionEvent e) {

使用此代码,错误应该会消失:

    b2.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
// Code added
        }
    });
// End of Added code
    b1.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            t1.setText(""+genericclass.twelveoclockfix + ":" + genericclass.minfixed + " " + genericclass.AMPMtxt);
            System.out.println(t2.getSelectedItem());
            JOptionPane.showMessageDialog(Frame1, "Le 9gag army waz h3r3!");

        }});
于 2013-07-04T15:56:33.643 回答