RadioButton无法解析 - 如何初始化按钮?

时间:2017-03-18 22:56:13

标签: java swing

我正在使用一个简单的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();


}

}

1 个答案:

答案 0 :(得分:4)

rdbtn_speed1仅在initialize方法中有效,因为这是声明它的位置。

如果您希望跨方法使用它,您应该在类级别声明它。