过时的Java Swing小结

一.窗口

1.JFrame():创建一个无标题的窗口(GUI设计中的底层容器)
2.JFrame(String s):创建标题为s的窗口
3.public void setBounds(int a,int b,int width,int height)
4.public void setSize(int width,int height)
5.public void setLocation(int x,int y)
6.public void setVisible(boolean b)
7.public void setDefaultCloseOperation(int operation)

二.菜单

1.JMenuBar menubar=new JMenuBar(String s);			//菜单条
	setJMenuBar(JMenuBar bar);
2.JMenu menu=new JMenu(String s);					//菜单
3.JMenuItem item=new JMenu(String s);               //菜单项
	menu.add(item);
	menubar.add(menu);
4.Icon icon=new ImageIcon("a.gif");
菜单条->菜单->菜单项(或子菜单)

三.常用组件

1.JTextField text=new JTextField(10);     		//文本框
2.JTexArea area=new JTextArea(6,12);            //文本区
3.JButton button=new JButton(String s);         //按钮
4.JLabel                                        //标签
5.JComboBox<String> comBox=new JComboBox<String>();   //下拉列表
6.ButtonGroup group=new ButtonGroup();               //按钮组
	JRadionButton radio1=new JRadionButto(String s);  //单选按钮
7.JCheckBox checkBox=new JCheckBox();          //复选框

四.常用容器

1.JPanel           //面板
2.JScrollPane scroll=new JScrollPane(new JTextArea());			//滚动窗格

五.常用布局

setLayout(布局对象)
1.FlowLayout布局
	FlowLayout flow=new FlowLayout();
2.BorderLayout布局
3.CardLayout布局
4.GridLayout布局
5.BoxLayout布局
createHorizontalBox()
创建一个从左到右显示其组件的 Box。
createHorizontalStrut(int width) //左右部件之间的中间间隔就可以用这个方法来控制
创建一个不可见的、固定宽度的组件。
createVerticalBox()
创建一个从上到下显示其组件的 Box。
createVerticalStrut(int height) //上下部件之间的中间间隔就可以用这个方法来控制
创建一个不可见的、固定高度的组件。

六.处理事件

1.事件处理模式

事件源

能够产生事件的对象都可以称为事件源。

监视器

对事件源进行监视的对象,以便对发生的事件作出处理

处理事件的接口

监视器负责处理事件源发生的事件。

ActionEvent事件

  1. 下列组件可以触发监视器,如文本框和密码框,按钮和单选按钮,菜单项。
  2. 注册监视器
JTextField text;
PoliceListen listener=new PoliceListen();
text.addActionListener(listen);
  1. ActionListener接口
ActionListener接口在Java.awt.event包中,该接口中只有一个方法:
public void actionPerformed(ActinEvent e)
事件源->触发ActionEvent事件->监视器调用接口的方法actionPerformed(ActinEvent e)
当监视器调用actionPerformed(ActinEvent e)方法时,ActionEvent类事先创建的事件对象就会传递给该方法的参数e
  1. ActionEvent类常用方法
  • public Object getSource()
  • public String getActionCommand()
/*Example10_7*/
package listener;

public class Example10_7 {
	public static void main (String args[]){
		WindowNumber win=new WindowNumber();
	}
}

/*WindowNumber*/
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class WindowNumber extends JFrame {
	JTextField textInput,textShow;//文本框
	PoliceListen listener;   //监视器
	public WindowNumber(){
		this.init();
		this.setBounds(150, 150, 300, 300);
		this.setVisible(true);
	}
	void init(){
		this.setLayout(new FlowLayout());
		textInput=new JTextField(100);
		textShow=new JTextField(100);
		textShow.setEditable(false);//只能输出
		listener=new PoliceListen();
		listener.setJTextField(textShow);//调用方法
		textInput.addActionListener(listener);//注册监视器
		this.add(textInput);
		this.add(textShow);//textInput->listener
						   //textShow
	}
}
/*PoliceListen*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JTextField;

public class PoliceListen implements ActionListener {

	private JTextField text;
	public void setJTextField(JTextField text){
		this.text=text;
	}
	public void actionPerformed(ActionEvent e) {
		int n=0,m=0;
		JTextField textSource=(JTextField)e.getSource();//得到事件源
		String str=textSource.getText();//得到文本
		if(!str.isEmpty()){
			try{
				n=Integer.parseInt(str);
				m=n*n;
				text.setText(""+m);//设置文本
			}
			catch(Exception ee){//自定义异常
				textSource.setText("please input the number");
			}
		}
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值