Giúp em về jradiobutton trong java swing.

CuDer

New Member
23/4/20
26
0
1
Viet Nam
Em đang làm một cái app quản lý sinh viên bằng java swing thì em có một cái cái class SinhVien trong đó có thuộc tính genDer kiểu boolean .Trong giao diện swing em tạo 2 cái radiobutton là male và female thì em muốn hỏi là làm thế nào để lúc em chọn male hay female thì nó sẽ in lên bảng là kiểu chuỗi "Nam" hoặc "Nữ" ạ.
 

nguyenha7

Member
10/11/17
44
13
8
Bạn thử cái này xem. Cũng tương tự thôi.

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

class RadioButtonExample extends JFrame implements ActionListener {
  JRadioButton rb1, rb2;
  JButton b;

  RadioButtonExample() {
    rb1 = new JRadioButton("Male");
    rb1.setBounds(100, 50, 100, 30);
    rb2 = new JRadioButton("Female");
    rb2.setBounds(100, 100, 100, 30);
    ButtonGroup bg = new ButtonGroup();
    bg.add(rb1);
    bg.add(rb2);
    b = new JButton("click");
    b.setBounds(100, 150, 80, 30);
    b.addActionListener(this);
    add(rb1);
    add(rb2);
    add(b);
    setSize(300, 300);
    setLayout(null);
    setVisible(true);
  }

  public void actionPerformed(ActionEvent e) {
    if (rb1.isSelected()) {
      JOptionPane.showMessageDialog(this, "You are Male.");
    }
    if (rb2.isSelected()) {
      JOptionPane.showMessageDialog(this, "You are Female.");
    }
  }

  public static void main(String args[]) {
    new RadioButtonExample();
  }
}
 

CuDer

New Member
23/4/20
26
0
1
Viet Nam
Bạn thử cái này xem. Cũng tương tự thôi.

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

class RadioButtonExample extends JFrame implements ActionListener {
  JRadioButton rb1, rb2;
  JButton b;

  RadioButtonExample() {
    rb1 = new JRadioButton("Male");
    rb1.setBounds(100, 50, 100, 30);
    rb2 = new JRadioButton("Female");
    rb2.setBounds(100, 100, 100, 30);
    ButtonGroup bg = new ButtonGroup();
    bg.add(rb1);
    bg.add(rb2);
    b = new JButton("click");
    b.setBounds(100, 150, 80, 30);
    b.addActionListener(this);
    add(rb1);
    add(rb2);
    add(b);
    setSize(300, 300);
    setLayout(null);
    setVisible(true);
  }

  public void actionPerformed(ActionEvent e) {
    if (rb1.isSelected()) {
      JOptionPane.showMessageDialog(this, "You are Male.");
    }
    if (rb2.isSelected()) {
      JOptionPane.showMessageDialog(this, "You are Female.");
    }
  }

  public static void main(String args[]) {
    new RadioButtonExample();
  }
}
mình cũng có tạo một biến string để khi cái radio kia được chọn trả về true thì mình gán biến đó thành "Nam" và ngược lại nhưng mà cái thuộc tính genDer trong class sinhvien mình lại chả động đến chi thì không biết thế nào nữa @@
 

nguyenha7

Member
10/11/17
44
13
8
1. Bạn chưa đưa cái class SinhVien của bạn lên đây nên mình không rõ.
2. Bạn nói in lên bảng là Nam hay Nữ, vậy in lên bảng ở đây là bảng gì? là UI của bạn hay sao.
3. Mình giả sử SinhVien của bạn có thuộc tính genDer để xác định giới tính, kiểu bool, khi hiện thị lên UI list nó sẽ tương ứng Nam với true, Nữ với false, và trên giao diện radio button của bạn có 2 cái, bắt buộc phải chọn 1 trong 2 thì code sẽ dạng như vậy:

Java:
SinhVien sv = new SinhVien();
// TODO: your code here
// radNam -> radio for gender Male
if(radNam.isSelect()){
    sv.setGender(true);
}elese{
    sv.setGender(false);
}
//Save entity sv into database
Khi bạn view lên UI:

Java:
SinhVien sv = .... //Get info from database.
if(sv != null){
    //TODO: your code here
    if(sv.isGender()){
        //Set UI is NAM
    }else{
        //Set UI is NỮ
    }
}
 

Joe

Thành viên VIP
21/1/13
2,969
1,310
113
một cái cái class SinhVien trong đó có thuộc tính genDer kiểu boolean
The JRadioButton is an extension of JAbstractButton and that means you can change the ICON or TEXT with setIcon() or setText() using a boolean value according to the action. Example:
PHP:
...
Image boy = ImageIO.read(getClass().getResource("resources/boy.jpg")); 
Image girl =  ImageIO.read(getClass().getResource("resources/girl.jpg")); 
...
if(radiobutton.isSelect()) {
    radioBuutton.setIcon(boy);
   // or
   //radioButton.setText("Boy");
}else{    
    radioBuutton.setIcon(girl);
   // or
   //radioButton.setText("Girl");
}