Bắt sự kiện cho JRadioButton

Mình muốn khi chọn radio pt bậc 1 nó ẩn đi dòng enter c : , còn pt bậc 2 thì nó hiện lên dòng enter c
Thực hiện trên 1 frame , 1 giao diện thôi .

package swing;


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;

public class SwingJava extends JFrame implements ActionListener{
	
	private JTextField txtA,txtB,txtC,txtResult ;
	private JButton btnSolve,btnExit,btnReset ;
	private JRadioButton radA,radB ;
	private JLabel lbA,lbB,lbC,lbResult ;
	private JPanel pA,pB,pC,pResult,pButton,pRadio ;
	private ButtonGroup group ;
	
	public SwingJava() {
		super("Test") ;
		super.setSize(300,400);
		super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		super.setVisible(true);
	
		super.setLayout( new GridLayout(6,1));
		
		group = new ButtonGroup() ;
		
//		pA = new JPanel() ;
//		lbA = new JLabel("Enter a :") ;
//		txtA = new JTextField(10) ;
//		pA.add(lbA) ; pA.add(txtA) ;
//		
//		pB = new JPanel() ;
//		lbB = new JLabel("Enter b :") ;
//		txtB = new JTextField(10) ;
//		pB.add(lbB) ; pB.add(txtB) ;
//		
//		pC = new JPanel() ;
//		lbC = new JLabel("Enter c :") ;
//		txtC = new JTextField(10) ;
//		pC.add(lbC) ; 
//		pC.add(txtC) ;
//		
//		
//		pResult = new JPanel() ;
//		lbResult = new JLabel("Result : ") ;
//		txtResult = new JTextField(10) ;
//		pResult.add(lbResult) ;
//		pResult.add(txtResult) ;
		
		
//		pButton = new JPanel() ;
//		btnSolve = new JButton("Solve") ;
//		btnReset = new JButton("Reset") ;
//		btnExit = new JButton("Exit") ;
//		pButton.add(btnSolve) ; pButton.add(btnReset) ; pButton.add(btnExit) ;
		
		pRadio = new JPanel() ;
		radA = new JRadioButton("Linear Equation") ;
		radB = new JRadioButton("Square Equation") ;
		group.add(radA); group.add(radB);
		pRadio.add(radA) ; pRadio.add(radB) ;
		
		
		
// 		super.add(pA) ;
// 		super.add(pB) ;
// 		super.add(pC) ;
// 		super.add(pResult) ;
 		super.add(pRadio) ;
// 		super.add(pButton) ;
 		
 		//dang ki su kien 
 		radA.addActionListener(this);
 		radB.addActionListener(this);
 		
	
	}

	
	@Override
	public void actionPerformed(ActionEvent e) {
		
		// TODO Auto-generated method stub
		if(e.getSource() == radA) {
			
			this.linearEquation();
		}
		if(e.getSource() == radB) {
			this.squareEquation();
		}
		
	}
	
	
	public void linearEquation() {
		JFrame s = new JFrame() ;
		s.setTitle("ets");
		s.setSize(300,400);
		s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		s.setVisible(true);
		s.setLayout( new GridLayout(5,1));
		
		group = new ButtonGroup() ;
		
		pA = new JPanel() ;
		lbA = new JLabel("Enter a :") ;
		txtA = new JTextField(10) ;
		pA.add(lbA) ; pA.add(txtA) ;
		
		pB = new JPanel() ;
		lbB = new JLabel("Enter b :") ;
		txtB = new JTextField(10) ;
		pB.add(lbB) ; pB.add(txtB) ;
		
//		pC = new JPanel() ;
//		lbC = new JLabel("Enter c :") ;
//		txtC = new JTextField(10) ;
//		pC.add(lbC) ; 
//		pC.add(txtC) ;
		
		
		pResult = new JPanel() ;
		lbResult = new JLabel("Result : ") ;
		txtResult = new JTextField(10) ;
		pResult.add(lbResult) ;
		pResult.add(txtResult) ;
		
		
		pButton = new JPanel() ;
		btnSolve = new JButton("Solve") ;
		btnReset = new JButton("Reset") ;
		btnExit = new JButton("Exit") ;
		pButton.add(btnSolve) ; pButton.add(btnReset) ; pButton.add(btnExit) ;
		
		pRadio = new JPanel() ;
		radA = new JRadioButton("Linear Equation") ;
		radB = new JRadioButton("Square Equation") ;
		group.add(radA); group.add(radB);
		pRadio.add(radA) ; pRadio.add(radB) ;
		
		
		
 		s.add(pA) ;
 		s.add(pB) ;
// 		super.add(pC) ;
 		s.add(pResult) ;
 		s.add(pRadio) ;
 		s.add(pButton) ;
		
	}

	
	
	public void squareEquation() {
		
		super.setLayout( new GridLayout(6,1));
		
		group = new ButtonGroup() ;
		
		pA = new JPanel() ;
		lbA = new JLabel("Enter a :") ;
		txtA = new JTextField(10) ;
		pA.add(lbA) ; pA.add(txtA) ;
		
		pB = new JPanel() ;
		lbB = new JLabel("Enter b :") ;
		txtB = new JTextField(10) ;
		pB.add(lbB) ; pB.add(txtB) ;
		
		pC = new JPanel() ;
		lbC = new JLabel("Enter c :") ;
		txtC = new JTextField(10) ;
		pC.add(lbC) ; 
		pC.add(txtC) ;
		
		
		pResult = new JPanel() ;
		lbResult = new JLabel("Result : ") ;
		txtResult = new JTextField(10) ;
		pResult.add(lbResult) ;
		pResult.add(txtResult) ;
		
		
		pButton = new JPanel() ;
		btnSolve = new JButton("Solve") ;
		btnReset = new JButton("Reset") ;
		btnExit = new JButton("Exit") ;
		pButton.add(btnSolve) ; pButton.add(btnReset) ; pButton.add(btnExit) ;
		
		pRadio = new JPanel() ;
		radA = new JRadioButton("Linear Equation") ;
		radB = new JRadioButton("Square Equation") ;
		group.add(radA); group.add(radB);
		pRadio.add(radA) ; pRadio.add(radB) ;
		
		
		
 		super.add(pA) ;
 		super.add(pB) ;
 		super.add(pC) ;
 		super.add(pResult) ;
 		super.add(pRadio) ;
 		super.add(pButton) ;
	}


	public static void main(String[] args) {
		SwingJava s = new SwingJava() ;
	}
	

}
package swing;

public class LinearEquation {
	
	protected double a,b ;

	
	public double getA() {
		return a;
	}
	public void setA(double a) {
		this.a = a;
	}

	
	
	public double getB() {
		return b;
	}
	public void setB(double b) {
		this.b = b;
	}
	
	
	
	public String solve() {
		if(a == 0)
			if(b == 0) return "Roots" ;
			else return "No root" ;
		else return "Root : " + ((-this.b)/this.a) ;
	}
	
	
	
	public static void main(String[] args) {
		String t = "300" ;
		
		System.out.println(Double.parseDouble(t));
	}

}

package swing;

public class SquareEquation extends LinearEquation {
	
	
	private double c ;

	

	public double getC() {
		return c;
	}
	public void setC(double c) {
		this.c = c;
	}


	
	public String solve() {
		double d = a*a - 4*b*c ;
		double x1,x2 ;
		if(c == 0) this.solve() ;
		else {
			if(d > 0) {
				x1 = (-b+Math.sqrt(d))/2*a ;
				x2 = (-b-Math.sqrt(d))/2*a ;
				return "Root : x1 = "+x1+"\nx2 = "+x2 ;
			}
			else if(d == 0) return "Root x1 = x2 "+(-a/2*b) ;
			else return "No root" ;
		}
		return null;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

Thì setVisible() cho nó thôi.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?