Java按钮,字符串

时间:2014-02-15 23:14:12

标签: java actionlistener

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class Project2KarlAnderson extends JFrame 
{

     private JTextField firstName = new JTextField();
     private JTextField lastName = new JTextField();
     private JTextField age = new JTextField();
     private JRadioButton mGender = new JRadioButton("Male");
     private JRadioButton fGender = new JRadioButton("Female");

     private JButton printName = new JButton("Print Name");


    public Project2KarlAnderson()
    {

     JPanel panelOne = new JPanel(new GridLayout(3, 3, 5, 5));
      panelOne.add(new JLabel("Enter First Name"));
      panelOne.add(firstName);
      panelOne.add(new JLabel("Enter Last Name"));
      panelOne.add(lastName);
      panelOne.add(new JLabel("Enter Age"));
      panelOne.add(age);


     JPanel panelTwo = new JPanel(new FlowLayout(FlowLayout.RIGHT));
       panelTwo.add(printName);


     JPanel panelThree = new JPanel(new FlowLayout(FlowLayout.LEFT));
      panelThree.add(mGender);
      panelThree.add(fGender);

     String[] states = {"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", 
     "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", 
         "MA", "MI", "MN", "MS", "MO","MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH",
         "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI",
         "WY"};

     JComboBox stateList = new JComboBox(states);






     JPanel panelFour = new JPanel(new FlowLayout(FlowLayout.RIGHT));
     panelFour.add(stateList);

     add(panelOne, BorderLayout.CENTER);
     add(panelTwo, BorderLayout.SOUTH);
     add(panelThree, BorderLayout.WEST);
     add(panelFour, BorderLayout.EAST);


     printName.addActionListener(new ButtonListener());
     }

     private class ButtonListener implements ActionListener {

        public void actionPerformed(ActionEvent e) {

            String first = firstName.getText();
            String last = lastName.getText();           
            String state = stateList.getSelectedText().toString();

            System.out.print("Welcome "+ first +" " + last +" " + state);

        }       

    }   


    public static void main(String[] args)
    {
        Project2KarlAnderson form = new Project2KarlAnderson();
            form.setTitle("Name Box");
            form.setSize(350, 175);
            form.setLocationRelativeTo(null);
            form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            form.setVisible(true);
    }
}

我收到以下错误。我一直绞尽脑汁想弄清楚什么是错的。

java:68: error: cannot find symbol
                String state = stateList.getSelectedText().toString();
                               ^
symbol:   variable stateList
location: class Project2KarlAnderson.ButtonListener

Note: Project2KarlAnderson.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

3 个答案:

答案 0 :(得分:0)

字段stateList在构造函数中声明。所以它不在外面。这是一个局部变量 要解决此问题,您需要声明变量外部构造函数。例如,在“JButton printName”行之后使用eclare。但是你可以在开始时用null声明它。您可以在构造函数中为此变量赋值(引用),就像您已经完成的那样。

答案 1 :(得分:0)

不要在构造函数中定义变量。这样做,

public class Project2KarlAnderson extends JFrame 
{
    String[] states = {"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", 
                      "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME",  "MD", 
     "MA", "MI", "MN", "MS", "MO","MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND","OH",
     "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI",
     "WY"};

    JComboBox stateList = new JComboBox(states); 

    public Project2KarlAnderson()
    {

    }
}

现在它会起作用。感谢。

答案 2 :(得分:0)

好的,

public class Project2KarlAnderson extends JFrame 
{
    String[] states = {"AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", 
                  "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME",  "MD", 
 "MA", "MI", "MN", "MS", "MO","MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND","OH",
 "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI",
 "WY"};

JComboBox stateList;

public Project2KarlAnderson()
{
     stateList = new JComboBox(states);
}}