图形用户界面GUI
使用GUI图形用户界面至少需要引用两个包
import javax.swing.*; //组建包
import java.awt.*; //布局包
import java.awt.event.*; //事件包
import java.awt.event.MouseListener; //鼠标事件包
组建:
1.JFrame 窗体 //默认边界布局.center
a>创建
JFrame 对象名=new JFrame();
JFrame 对象名=new JFrame("标题");
b>添加组建
JFrame 对象名.getContentPane().add(添加的组建名称); //JFrame可以省略. 也可用this代替
this.getContentPane().add(添加的组建名称);
c>设置窗口大小
pack(); //自动调整,紧凑排列
setSize(宽,高); //自己调整.
setBound(x,y,宽,高); //自己调整,x,y为开始点坐标
d>显示窗口
JFrame 对象名.setVisible(true); //显示窗口
JFrame 对象名.show(); //效果同样. JFrame可以省略. 也可以用this代替
2.JLabel 标签
JLabel 组建名=new JLabel();
JLabel 组建名=new JLabel("显示的文字");
注:如果给标签添加图片则创建图片对象.格式如下
ImageIcon 组建名=new ImageIcon("图片名");
JLabel 组建名=new JLabel(图片组建名);
JLabel 组建名=new JLabel("显示的文字",图片组建名,JLabel.RIGHT); //含有参数
例:
import javax.swing.*;
class xx{
public static void mian(String arg[])
{
JFrame f=new JFrame();
ImageIcon aa=new ImageIcon("abc.gif");
JLabel l=new JLabel("hello",aa,JLabel.RIGHT);
f.pack();
f.getContentPane().add(l);
f.setVisible(true);
}
}
图片方法2:
ImageIcon 对象名=new ImageIcon("图片名");
标签对象名.setIcon(对象名);
3.JButton 按钮
JButton 组建名=new JButton();
JButton 组建名=new JButton("按钮名");
创建方法都几乎类似. 故以下只写组建名称. 创建声明同上
4.JTextField 文本框 5.JPasswordField 密码框
6.JRadioButton 单选按钮
JRadioButton 对象名=new JRadioButton("单选按钮显示内容");
ButtonGroup 对象名=new ButtonGroup(); //单选按钮组
单选按钮组名.add(单选按钮); //将单选按钮添加到组中.防止可以多选的情况
例:
JRadioButton a=new JRadioButton("男");
JRadioButton b=new JRadioButton("女");
ButtonGroup c=new ButtonGroup();
c.add(a);
c.add(b);
7.JCheckBox 复选框
JCheckBox 对象名=new JCheckBox("复选框显示内容");
例:
JCheckBox a=new JCheckBox("音乐");
JCheckBox b=new JCheckBox("体育");
8.JComboBox 下拉框
JComboBox 对象名=new JComboBox();
下拉框名.addItem("下拉框内容"); //添加下拉框内容
例:
JComboBox a=new JComboBox();
a.addItem("北京");
a.addItem("天津");
9.JTextArea 多行文本域
JTextArea 对象名=new JTextArea(行,列);
注:多配合滚动容器使用,因为多行文本框中内容过多无法下拉.所以经常将其添加到滚动条容器中使用
JScrollPane 对象名=new JScrollPane(多行文本域对象名);
例:
JTextArea a=new JTextArea(10,10);
JScrollPane b=new JScrollPane(a);
10.JPane 中级容器 默认流布局
JPane 对象名=new JPane();
例:
JButton a=new JButton("a"); //建立按钮a
JPane b=new JPane(); //建立容器b
b.add(a); //将按钮放入容器b中
11.JTabbedPane 选项卡活页夹
JTabbedPane 对象名=new JTabbedPane();
例:
JTabbedPane a=new JTabbedPane();
JPane b=new JPane();
JPane b2=new JPane();
JButton c=new JButton("按钮1");
JButton d=new JButton("按钮2");
b.add(c);
b2.add(d);
a.add("标签1",b);
a.add("标签2",b2);
12.JMenuBar 菜单
JMenuBar 对象名=new JMenuBar(); //菜单条
JMenu 对象名=new JMenu(); //菜单项
JMenuItem 对象名=new JMenuItem(); //菜单下拉项
例:
JMenuBar a=new JMenuBar();
JMenu b=new JMenu("文件");
JMenu c=new JMenu("编辑");
JMenuItem aa=new JMenuItem("打开");
JMenuItem bb=new JMenuItem("退出");
JMenuItem cc=new JMenuItem("查看");
b.add(aa); //将打开添加到"文件"
b.addSeparator(); //分隔符.横线
b.add(bb); //将退出添加到"文件"
c.add(cc); //将查看添加到"编辑"
a.add(b); //将"文件"添加到菜单栏
a.add(c); //将"编辑"添加到菜单栏
13.JToolBar
JToolBar 组建名=new JToolBar();
例:
JButon aa=new JButton("aa");
JToolBar bb=new JToolBar();
bb.add(aa);
this.add(bb);
组建名.setToolTipText("提示文本"); //鼠标提示文本
常用方法:
system.exit(0); //关闭窗口
this.dispose(); //消除窗口
frame.setResizable(false); //固定窗口大小不可变
frame.getDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //得到关闭窗口按钮
this.getContentPane().add(对象名); //将组建添加到窗口
this.setSize(宽,高); //窗口大小(宽,高)
this.pack(); //紧凑显示
this.setVisible(true); //设置窗口可见
this.show(); //窗体显示
this.setTitle("标题"); // 窗体标题
对象名.setEnabled(false); //不可使用.例如灰色按钮
对象名.setEditable(false) //文本框不能被编辑
this.setJMenuBar(JMenuBar的对象名); //设置菜单栏到窗口
this.setLocation(宽,高); //窗口显示距左上角宽,高
this.setIconImage(Toolkit.getDefaultToolkit().createImage("1.jpg")); //标题图标
组建名.setBorderPainted(false); //取消按钮边框
Font f=new Font("宋体",Font.PLAIN,12); //(字体,显示方法,字号)
//Font.ITALIC 斜体 Font.BOLD 粗体 Font.PLAIN 普通 Font.ITALIC 倾斜
组建名.setFont(f); //套用字体
组建名.setMnemonic('f'); //套用快捷键
组建名.setBackground(Color.yellow); //背景颜色
组建名.setForeground(Color.pink); //magenta 紫色 pink 粉色 前景色
组建名.setEchoChar('&'); //密码框显示的字符
组建名.append(String str) //将给定文本追加到文档结尾。
组建名.getSelectedItem() //获得下拉框中内容
组建名.addSeparator(); //分隔符.横线 组件名.requestFocus(); //获得焦点
//状态栏
JLabel stateBar=new JLabel("");
stateBar.setHorizontalAlignment(SwingConstants.LEFT);
布局:
组建名.setHorizontalAlignment(JLabel.CENTER); //对齐方式
1.边界布局
this.setLayout(new BorderLayout()); //边界布局
this.getContentPane().add(b,BorderLayout.NORTH); //北部
this.getContentPane().add(jl,BorderLayout.CENTER); //中
this.getContentPane().add(ps,BorderLayout.SOUTH); //南
this.getContentPane().add(rb,BorderLayout.WEST); //西
this.getContentPane().add(rd,BorderLayout.EAST); //东
注:对象.add(布局方式) 对象调用此布局省略getContentPane()
2.流水布局(横着一排是的)
this.getContentPane().setLayout(new FlowLayout());
this.getContentPane().add(对象名); //添加
3.表格布局(行列是的) (行,列,横边距,竖边距)
this.getContentPane().setLayout(new GridLayout(行,列));
this.getContentPane().add(对象名); //添加
4.卡片布局
CardLayout c=new CardLayout();
=================================================
事件监听:
组建名.addActionListener(监听对象); //事件监听
组建名.addKeyListener(监听对象); //键盘监听
组建名.addMouseListener(监听对象); //鼠标点击类监听
组建名.addMouseMotionListener(监听对象); //鼠标拖动类监听
this.setFocusable(true); //窗口获得交点
常用事件方法:
对象名.setText(); //改文本框内容
对象名.getText(); //取文本框内容
//======使组建在构造函数运行之后还可以获得焦点
用requestFocusInWindow()
但必须是在窗口显示之后再用,例如:
frame.setVisible(true);
yourPasswordText.requestFocusInWindow();
//=======
===================== 颜色对照表
BLACK 黑色。
BLUE 蓝色。
CYAN 青色。
darkGray 深灰色。
GRAY 灰色。
GREEN 绿色。
lightGray 浅灰色。
MAGENTA 洋红色。
ORANGE 桔黄色
PINK 粉红色。
RED 红色。
WHITE 白色。
YELLOW 黄色。
//===== 执行DOS语句
try
{
Runtime.getRuntime().exec("DOS语句");
}
catch(Exception e)
{
e.jprintStackTrace();
}