2013-09-28 44 views
0

我的問題是它找不到符號,但我已經在該類之前聲明瞭'r1button'。已經搜索了類似的問題,但似乎找不到一個。即時通訊錯誤在'e.getSource()== r1button'部分。在JButton中找不到符號

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. 
     } 
    } 
} 
+1

你不熟悉'Array','Loops'和'InterClass'通信的概念嗎? –

+1

顯然還沒有。打開書的時間,並從一開始就開始。編程很像數學 - 你必須知道前進的基礎知識。 –

回答

2

你宣佈和只有你main()方法定義r1button,所以它是看不見你actionPerformed()功能。請在類字段中聲明r1button,即在public class ProjectWindow extends JFrame {的正下方添加JButton r1button;

+2

爲什麼停止與JButton。實際上,他的GUI構建中的所有**應該從主要方法中移除並轉移到類的代碼中。 –

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 
      } 
     } 
    } 
}