單選框以及邊框

import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.Border;


public class BorderFrame extends JFrame{
	private JPanel buttonPanel;
	private JPanel demoPanel;
	private ButtonGroup buttonGroup;
	private final Border border = BorderFactory.createEmptyBorder();
	public BorderFrame() {
		buttonPanel = new JPanel();
		demoPanel = new JPanel();
		buttonGroup = new ButtonGroup();
		addRadioButton("Lowered bevel",BorderFactory.createLoweredBevelBorder());
		addRadioButton("Raised bevel",BorderFactory.createRaisedBevelBorder());
		addRadioButton("Etched",BorderFactory.createEtchedBorder());
		addRadioButton("Line",BorderFactory.createLineBorder(Color.BLUE));
		addRadioButton("Matte",BorderFactory.createMatteBorder(10, 10, 10, 10, Color.BLUE));
		addRadioButton("Empty",BorderFactory.createEmptyBorder());
		
		Border etched = BorderFactory.createEtchedBorder();
		Border titleBorder = BorderFactory.createTitledBorder(etched, "Boder types");
		buttonPanel.setBorder(titleBorder);
		
		this.setLayout(new GridLayout(2,1));
		this.add(buttonPanel);
		this.add(demoPanel);
		this.setLocation(300, 400);
		this.pack();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	
	private void addRadioButton(String buttonName, final Border border) {
		boolean state = false;
		if(border == this.border) state = true;
		JRadioButton button = new JRadioButton(buttonName,state);
		button.addActionListener(new ActionListener(){
			@Override
			public void actionPerformed(ActionEvent e) {
				demoPanel.setBorder(border);
			}
		});
		buttonGroup.add(button);
		buttonPanel.add(button);
	}

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章