我正在使用一个简单的radiobutton组。然而,我无法弄清楚如何初始化radiobuttons,以便我可以将它们添加到if语句中。
我按如下方式创建按钮:
JRadioButton rdbtn_speed1 = new JRadioButton("Speed 1");
rdbtn_speed1.setSelected(true);
buttonGroup_1.add(rdbtn_speed1);
rdbtn_speed1.setBounds(10, 91, 97, 23);
frame.getContentPane().add(rdbtn_speed1);
然后尝试:
if(rdbtn_speed1.isSelected()){
System.out.println("1");
}
else if(rdbtn_speed2.isSelected()){
System.out.println("2");
}
但这不起作用,因为它无法找到rdbtns。 (即:rdbtn_speed1无法解析)我必须重新声明它们,但到目前为止我找不到任何内容。我想念的是什么人?
以下是全套:
公共类Frame1 {
private JFrame frame;
private JTextField Customer_ID;
private JTextField Destination;
private final ButtonGroup buttonGroup_1 = new ButtonGroup();
/**
* Launch the application.
*/
public static void main(String[] args) throws ClassNotFoundException,SQLException{
Class.forName("com.mysql.jdbc.Driver");
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Frame1 window = new Frame1();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Frame1() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
JButton btnClickMe = new JButton("Click Me!");
btnClickMe.setBounds(10, 218, 414, 32);
btnClickMe.setFont(new Font("Palatino Linotype", Font.BOLD, 29));
btnClickMe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
submitSQL();
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
frame.getContentPane().add(btnClickMe);
JLabel lblNewLabel = new JLabel("Shipment Information Input:");
lblNewLabel.setForeground(Color.BLACK);
lblNewLabel.setFont(lblNewLabel.getFont().deriveFont(lblNewLabel.getFont().getStyle() | Font.BOLD));
lblNewLabel.setBounds(10, 11, 226, 20);
frame.getContentPane().add(lblNewLabel);
JLabel lblFirstName = new JLabel("Customer ID:");
lblFirstName.setBounds(10, 42, 103, 14);
frame.getContentPane().add(lblFirstName);
Customer_ID = new JTextField();
Customer_ID.setBounds(107, 39, 86, 20);
frame.getContentPane().add(Customer_ID);
Customer_ID.setColumns(10);
Destination = new JTextField();
Destination.setBounds(107, 60, 86, 20);
frame.getContentPane().add(Destination);
Destination.setColumns(10);
JLabel lblSendingLocation = new JLabel("Destination:");
lblSendingLocation.setBounds(10, 63, 87, 14);
frame.getContentPane().add(lblSendingLocation);
JRadioButton rdbtn_speed1 = new JRadioButton("Speed 1");
rdbtn_speed1.setSelected(true);
buttonGroup_1.add(rdbtn_speed1);
rdbtn_speed1.setBounds(10, 91, 97, 23);
frame.getContentPane().add(rdbtn_speed1);
JRadioButton rdbtn_speed2 = new JRadioButton("Speed 2");
buttonGroup_1.add(rdbtn_speed2);
rdbtn_speed2.setBounds(10, 117, 87, 23);
frame.getContentPane().add(rdbtn_speed2);
JRadioButton rdbtn_speed3 = new JRadioButton("Speed 3");
buttonGroup_1.add(rdbtn_speed3);
rdbtn_speed3.setBounds(10, 143, 87, 23);
frame.getContentPane().add(rdbtn_speed3);
JCheckBox chckbx_international = new JCheckBox("International");
chckbx_international.setBounds(107, 87, 97, 23);
frame.getContentPane().add(chckbx_international);
JCheckBox chckbxOversize = new JCheckBox("Oversized");
chckbxOversize.setBounds(107, 117, 97, 23);
frame.getContentPane().add(chckbxOversize);
JCheckBox chckbx_Hazard = new JCheckBox("Hazardous ");
chckbx_Hazard.setBounds(107, 143, 97, 23);
frame.getContentPane().add(chckbx_Hazard);
}
public void submitSQL() throws ClassNotFoundException,SQLException{
String connectionURL = "jdbc:mysql://localhost:3306/projecttest?autoReconnect=true&useSSL=false";
Connection connection = DriverManager.getConnection(connectionURL, "root", "");
Statement statement = connection.createStatement();
//Table Creation
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
System.out.println(dtf.format(now)); //2016/11/16 12:08:43
String CID = Customer_ID.getText();
String PDestination = Destination.getText();
if(rdbtn_speed1.isSelected()){
System.out.println("1");
}
else if(rdbtn_speed2.isSelected()){
System.out.println("2");
}
//String insertintosql = "insert into shipment (ShipName, ShipDate) VALUES ('"+name+"','"+dtf.format(now)+"');";
//statement.executeUpdate(insertintosql);
connection.close();
}
}
答案 0 :(得分:4)
rdbtn_speed1
仅在initialize
方法中有效,因为这是声明它的位置。
如果您希望跨方法使用它,您应该在类级别声明它。