我的问题是它无法找到符号,但我已经在该类之前声明了'r1button'。已经谷歌搜索类似的问题,但似乎无法找到一个。我在'e.getSource()== r1button'部分得到错误。
package projectwindow;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ProjectWindow extends JFrame {
public static void main(String[] args) {
JFrame nframe = new JFrame ("Bus Reservation");
nframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel ContentPane = new JPanel();
//ContentPane.setBackground();
ContentPane.setLayout(new GridBagLayout());
JLabel row1 = new JLabel("A1", SwingConstants.LEFT);
row1.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row1.setHorizontalAlignment(JLabel.LEFT);
JButton r1button = new JButton("reserve A1");
r1button.setAlignmentX(JButton.LEFT_ALIGNMENT);
JLabel r1c2Lab = new JLabel ("A2", SwingConstants.CENTER);
JButton r1c2Button = new JButton ("reserve A2");
JLabel row2 = new JLabel("B1", SwingConstants.LEFT);
row2.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row2.setHorizontalAlignment(JLabel.LEFT);
JButton r2button = new JButton("reserve B1");
JLabel r2c2Lab = new JLabel("B2");
JButton r2c2Button = new JButton("reserve B2");
JLabel row3 = new JLabel("C1",SwingConstants.LEFT);
row3.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row3.setHorizontalAlignment(JLabel.LEFT);
JButton r3button = new JButton("reserve C1");
JLabel r3c2Lab = new JLabel ("C2");
JButton r3c2Button = new JButton ("reserve C2");
JLabel row4 = new JLabel("D1",SwingConstants.LEFT);
row4.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row4.setHorizontalAlignment(JLabel.LEFT);
JButton r4button = new JButton("reserve D1");
JLabel r4c2Lab = new JLabel ("D2");
JButton r4c2Button = new JButton ("reserve D2");
JLabel row5 = new JLabel("E1",SwingConstants.LEFT);
row5.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row5.setHorizontalAlignment(JLabel.LEFT);
JButton r5button = new JButton("reserve E1");
JLabel r5c2Lab = new JLabel ("E2");
JButton r5c2Button = new JButton ("reserve E2");
JLabel row6 = new JLabel("F1",SwingConstants.LEFT);
row6.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row6.setHorizontalAlignment(JLabel.LEFT);
JButton r6button = new JButton("reserve F1");
JLabel r6c2Lab = new JLabel ("F2");
JButton r6c2Button = new JButton ("reserve F2");
JLabel row7 = new JLabel("G1",SwingConstants.LEFT);
row7.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row7.setHorizontalAlignment(JLabel.LEFT);
JButton r7button = new JButton("reserve G1");
JLabel r7c2Lab = new JLabel("G2");
JButton r7c2Button = new JButton ("reserve G2");
JLabel row8 = new JLabel("H1",SwingConstants.LEFT);
row8.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row8.setHorizontalAlignment(JLabel.LEFT);
JButton r8button = new JButton("reserve H1");
JLabel r8c2Lab = new JLabel ("H2");
JButton r8c2Button = new JButton ("reserve H2");
JLabel row9 = new JLabel("I1",SwingConstants.LEFT);
row9.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row9.setHorizontalAlignment(JLabel.LEFT);
JButton r9button = new JButton("reserve I1");
JLabel r9c2Lab = new JLabel ("I2");
JButton r9c2Button = new JButton ("reserve I2");
JLabel row10 = new JLabel("J1",SwingConstants.LEFT);
row10.setAlignmentX(JLabel.LEFT_ALIGNMENT);
row10.setHorizontalAlignment(JLabel.LEFT);
JButton r10button = new JButton("reserve J1");
JLabel r10c2Lab = new JLabel ("J2");
JButton r10c2Button = new JButton ("reserve J2");
//counter 1
JLabel counterLab = new JLabel ("Counter");
JTextField counter = new JTextField (15);
//receipt
JLabel recLab = new JLabel ("Receipt");
JTextField recText = new JTextField (15);
//clear
JButton total = new JButton ("total");
JButton clr = new JButton ("clear");
//bill
JLabel Blabel = new JLabel ("Bill");
JTextField bill = new JTextField (15);
GridBagConstraints cons = new GridBagConstraints();
//textfield counter
cons.gridx = 400;
cons.gridy = 3;
ContentPane.add(counterLab, cons);
cons.insets = new Insets (10,10,0,0);
cons.gridx = 400;
cons.gridy = 4;
ContentPane.add(counter, cons);
//receipt
cons.gridx = 400;
cons.gridy = 5;
ContentPane.add(Blabel, cons);
cons.gridx = 400;
cons.gridy = 6;
ContentPane.add(bill, cons);
//bill
cons.gridx = 400;
cons.gridy = 7;
ContentPane.add(recLab, cons);
cons.gridx = 400;
cons.gridy = 8;
ContentPane.add(recText, cons);
//total
cons.gridx = 400;
cons.gridy = 9;
ContentPane.add(total, cons);
//clear
cons.gridx = 400;
cons.gridy = 10;
ContentPane.add(clr, cons);
//column 2
cons.insets = new Insets (0,0,10,10);
cons.gridx = 40;
cons.gridy = 1;
ContentPane.add(r1c2Lab,cons);
cons.gridx = 40;
cons.gridy = 2;
ContentPane.add(r1c2Button, cons);
cons.gridx = 40;
cons.gridy = 3;
ContentPane.add(r2c2Lab, cons);
cons.gridx = 40;
cons.gridy = 4;
ContentPane.add(r2c2Button, cons);
cons.gridx = 40;
cons.gridy = 5;
ContentPane.add(r3c2Lab, cons);
cons.gridx = 40;
cons.gridy = 6;
ContentPane.add(r3c2Button, cons);
cons.gridx = 40;
cons.gridy = 7;
ContentPane.add(r4c2Lab, cons);
cons.gridx = 40;
cons.gridy = 8;
ContentPane.add(r4c2Button, cons);
cons.gridx = 40;
cons.gridy = 9;
ContentPane.add(r5c2Lab, cons);
cons.gridx = 40;
cons.gridy = 10;
ContentPane.add(r5c2Button, cons);
cons.gridx = 40;
cons.gridy = 11;
ContentPane.add(r6c2Lab, cons);
cons.gridx = 40;
cons.gridy = 12;
ContentPane.add(r6c2Button, cons);
cons.gridx = 40;
cons.gridy = 13;
ContentPane.add(r7c2Lab, cons);
cons.gridx = 40;
cons.gridy = 14;
ContentPane.add(r7c2Button, cons);
cons.gridx = 40;
cons.gridy = 15;
ContentPane.add(r8c2Lab, cons);
cons.gridx = 40;
cons.gridy = 16;
ContentPane.add(r8c2Button, cons);
cons.gridx = 40;
cons.gridy = 17;
ContentPane.add(r9c2Lab, cons);
cons.gridx = 40;
cons.gridy = 18;
ContentPane.add(r9c2Button, cons);
cons.gridx = 40;
cons.gridy = 19;
ContentPane.add(r10c2Lab, cons);
cons.gridx = 40;
cons.gridy = 20;
ContentPane.add(r10c2Button, cons);
//column 1
cons.insets = new Insets (0,0,10,10);
cons.gridx = 0;
cons.gridy = 1;
ContentPane.add(row1,cons);
cons.gridx = 0;
cons.gridy = 2;
ContentPane.add(r1button,cons);
cons.gridx = 0;
cons.gridy = 3;
ContentPane.add(row2,cons);
cons.gridx = 0;
cons.gridy = 4;
ContentPane.add(r2button,cons);
cons.gridx = 0;
cons.gridy = 5;
ContentPane.add(row3,cons);
cons.gridx = 0;
cons.gridy = 6;
ContentPane.add(r3button,cons);
cons.gridx = 0;
cons.gridy = 7;
ContentPane.add(row4,cons);
cons.gridx = 0;
cons.gridy = 8;
ContentPane.add(r4button,cons);
cons.gridx = 0;
cons.gridy = 9;
ContentPane.add(row5,cons);
cons.gridx = 0;
cons.gridy = 10;
ContentPane.add(r5button,cons);
cons.gridx = 0;
cons.gridy = 11;
ContentPane.add(row6,cons);
cons.gridx = 0;
cons.gridy = 12;
ContentPane.add(r6button,cons);
cons.gridx = 0;
cons.gridy = 13;
ContentPane.add(row7,cons);
cons.gridx = 0;
cons.gridy = 14;
ContentPane.add(r7button,cons);
cons.gridx = 0;
cons.gridy = 15;
ContentPane.add(row8,cons);
cons.gridx = 0;
cons.gridy = 16;
ContentPane.add(r8button,cons);
cons.gridx = 0;
cons.gridy = 17;
ContentPane.add(row9,cons);
cons.gridx = 0;
cons.gridy = 18;
ContentPane.add(r9button,cons);
cons.gridx = 0;
cons.gridy = 19;
ContentPane.add(row10,cons);
cons.gridx = 0;
cons.gridy = 20;
ContentPane.add(r10button,cons);
// progHandler handler = new progHandler();
// col1
r1button.addActionListener(new progHandler());
r2button.addActionListener(new progHandler());
r3button.addActionListener(new progHandler());
r4button.addActionListener(new progHandler());
r5button.addActionListener(new progHandler());
r6button.addActionListener(new progHandler());
r7button.addActionListener(new progHandler());
r8button.addActionListener(new progHandler());
r9button.addActionListener(new progHandler());
r10button.addActionListener(new progHandler());
// col2
r1c2Button.addActionListener(new progHandler());
r2c2Button.addActionListener(new progHandler());
r3c2Button.addActionListener(new progHandler());
r4c2Button.addActionListener(new progHandler());
r5c2Button.addActionListener(new progHandler());
r6c2Button.addActionListener(new progHandler());
r7c2Button.addActionListener(new progHandler());
r8c2Button.addActionListener(new progHandler());
r9c2Button.addActionListener(new progHandler());
r10c2Button.addActionListener(new progHandler());
nframe.add(ContentPane);
nframe.pack();
nframe.setSize(450,750);
nframe.setVisible(true);
}
static class progHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==r1button)//this is the symbol that it cannot find.
}
}
}
答案 0 :(得分:2)
您仅在r1button
方法中声明并定义main()
,因此您的actionPerformed()
函数无法看到它。改为在类字段中声明r1button
,即在JButton r1button;
下面添加public class ProjectWindow extends JFrame {
。
答案 1 :(得分:2)
类progHandler中没有名为r1button的变量。所以很明显这个名字不会得到解决。相反,你可以做类似
的事情static class progHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource().getClass().equals(JButton.class))
{
JButton buttonPressed = (JButton)e.getSource();
if(buttonPressed.getName().equals("reserve A1"))//this is the symbol that it cannot find.
{
//do whatever you want
}
}
}
}