cannot find symbol in JButton

女生的网名这么多〃 提交于 2021-02-11 17:19:27

问题


my problem is that it cannot find the symbol but i already declare the 'r1button' before that class. already googled similar problems but cant seem to find one. im getting error in the 'e.getSource()==r1button' part.

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:


You're declaring and defining r1button in your main() method only, so it's invisible to your actionPerformed() function. Declare r1button in the class fields instead, i.e., add JButton r1button; right below public class ProjectWindow extends JFrame {.




回答2:


There is no variable called r1button in class progHandler. So it is very much obvious the name will not be resolved. Instead you can do something like

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


来源:https://stackoverflow.com/questions/19063342/cannot-find-symbol-in-jbutton

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!