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
答案 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);
}}