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