简体   繁体   中英

RadioButton cannot be resolved - how do I initialize the buttons?

I am using a simple radiobutton group. Yet I can not figure out how to initialize the radiobuttons so that I can add them to an if statement.

I create the buttons as so:

    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);

Then later try:

    if(rdbtn_speed1.isSelected()){
        System.out.println("1");
    }
    else if(rdbtn_speed2.isSelected()){
        System.out.println("2");
    }

But this does not work because it cannot find the rdbtns. (ie: rdbtn_speed1 cannot be resolved) I must need to re declare them but nothing that I have found so far shows this. What am I missing guys?

Here is the full set:

public class 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();


}

}

rdbtn_speed1 is only valid inside the initialize method, because that is where it is declared.

If you wish for it to be used across methods, you should declare it at the class level.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM