Java中Font和JRadioButton应用

写了一个例子程序,不过感觉很让人抓狂的一点是:必须手动调整尺寸构造布局,很不爽...不知道有什么办法没。

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;


public class radioButton extends JFrame{
	private Container container;
	private JRadioButton plainRadioButton,boldRadioButton,
			italicRadioButton,boldAndItalicRadioButton;
	private Font plain,bold,italic,boldAndItalic;
	private JTextField txt;
	private ButtonGroup radioGroup;
	//private RadioButtonHandler handler;
	
	//constructor
	radioButton(){
		super("a program displaying radioButton written by lwfcgz@csdn");
		
		container=getContentPane();
		container.setLayout(new FlowLayout());
		
		//add text field
		txt=new JTextField();
		//it is very boring to adjust the width and height by hand
		txt.setText("Watch the font style change                         ");
		//txt.setBounds(5, 5, 200, 10);
		container.add(txt);
		
		//create new radio button
		plainRadioButton=new JRadioButton("plain",true);
		container.add(plainRadioButton);
		boldRadioButton=new JRadioButton("bold",false);
		container.add(boldRadioButton);
		italicRadioButton=new JRadioButton("italic",false);
		container.add(italicRadioButton);		
		boldAndItalicRadioButton=new JRadioButton("bold&italic",false);
		container.add(boldAndItalicRadioButton);
		
		//add radio button into radio group
		radioGroup=new ButtonGroup();
		radioGroup.add(plainRadioButton);
		radioGroup.add(boldRadioButton);
		radioGroup.add(italicRadioButton);
		radioGroup.add(boldAndItalicRadioButton);
		
		//create new font
		plain=new Font("Serif",Font.PLAIN,14);
		bold= new Font("Serif",Font.BOLD,14);
		italic=new Font("Serif",Font.ITALIC,14);
		//it is wonderful to concatenate two font using equal sign
		boldAndItalic=new Font("Serif",Font.ITALIC+Font.BOLD,14);
		
		//add item listener		
		plainRadioButton.addItemListener(new RadioButtonHandler(plain));
		boldRadioButton.addItemListener(new RadioButtonHandler(bold));
		italicRadioButton.addItemListener(new RadioButtonHandler(italic));
		boldAndItalicRadioButton.addItemListener(new RadioButtonHandler(boldAndItalic));
		
		setSize(300,100);
		setVisible(true);
	}
	
	private class RadioButtonHandler implements ItemListener{
		private Font tmpFont;
		
		//constructor
		RadioButtonHandler(Font f){
			tmpFont=f;
		}
		
		@Override
		public void itemStateChanged(ItemEvent e) {
			// TODO Auto-generated method stub
			txt.setFont(tmpFont);
		}
		
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		radioButton radio=new radioButton();
		radio.setDefaultCloseOperation(EXIT_ON_CLOSE);

	}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值