/*
栗子 了解swing
*/
import javax.swing.*;
public class test_swing extends JFrame {
//继承JFrame顶层容器类(可以添加其他swing组件的类)
JButton jb1 = null; public static void main(String[] args) {
test_swing win = new test_swing();
} //构造函数
public test_swing(){
jb1 = new JButton("按钮");
this.add(jb1);
this.setTitle("Hello Swing World");
this.setSize(500,500);
this.setLocation(500,150);
//设置当关闭窗口时,保证JVM也退出
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}

【三大常⽤布局管理器】
布局管理器--介绍
1、概念
组件在容器(如JFrame)中的位置和⼤⼩是由布局管理器来决定的。所有的容器都会
使用一个布局管理器,通过它来自动进行组件的布局管理。
2、种类
java共提供了五种布局管理器: 流式布局管理器(FlowLayout)、 边界布局管理器
(BorderLayout)、 网格布局管理器(GridLayout)、 卡片布局管理器(CardLayout)、 网格包布
局管理器(GridBagLayout)。其中前三种是最常⻅的布局管理器。
边界布局BorderLayout--介绍
边界布局(BorderLayout)将容器简单的划分为东南西北5个区域,中间区域最大。
JFrame窗体, JDialog对话框组件默认布局方法

边界布局BorderLayout--注意事项
1、不是五个部分都必需添加;
2、中部组件会⾃动调节大小;
3、 JFrame, Jdialog默认布局管理器就是BorderLayout

import javax.swing.*;
import java.awt.*;
/*
栗子 边界布局BorderLayout使⽤演示
* 1、继承JFrame
* 2、定义你需要的各个组件
* 3、创建组件(在构造函数中组件)
* 4、添加组件
* 5、对窗体设置
* 6、显示窗体
*/ public class test_swing extends JFrame {
JButton jb1,jb2,jb3,jb4,jb5;
public test_swing(){
jb1 = new JButton("中部");
jb2 = new JButton("北部");
jb3 = new JButton("东部");
jb4 = new JButton("南部");
jb5 = new JButton("西部"); //添加各个组件
this.add(jb1, BorderLayout.CENTER);
this.add(jb2,BorderLayout.NORTH);
this.add(jb3,BorderLayout.EAST);
this.add(jb4,BorderLayout.SOUTH);
this.add(jb5,BorderLayout.WEST); //设置窗体属性
this.setTitle("边界布局演示");
this.setSize(300,200);
this.setLocation(200,200);
//退出窗体后将JFrame同时关闭
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //显示窗体
this.setVisible(true);
} public static void main(String[] args) {
test_swing win = new test_swing(); } }

三⼤常⽤布局管理器--流式布局
流式布局FlowLayout--介绍
FlowLayout布局,按照组件的添加次序将按钮组件(当然也可以是别的组件)从左到右放置
在容器中。当到达容器的边界时,组件将放置到下⼀⾏中。 FlowLayout可以以左对⻬、居
中对⻬、以右对⻬的⽅式排列组件

import javax.swing.*;
import java.awt.*;
/*
栗子 流式布局FlowLayout使⽤演示
* 1、继承JFrame
* 2、定义你需要的各个组件
* 3、创建组件(在构造函数中组件)
* 4、添加组件
* 5、对窗体设置
* 6、显示窗体
*/ public class test_swing extends JFrame {
//定义组件
JButton jb1,jb2,jb3,jb4,jb5,jb6; public test_swing(){
jb1 = new JButton("关羽");
jb2 = new JButton("张飞");
jb3 = new JButton("马超");
jb4 = new JButton("黄忠");
jb5 = new JButton("赵云");
jb6 = new JButton("魏延"); this.add(jb1);
this.add(jb2);
this.add(jb3);
this.add(jb4);
this.add(jb5); //设置布局管理器,流式布局默认为剧中对齐
this.setLayout(new FlowLayout(FlowLayout.LEFT)); //设置窗体属性
this.setTitle("流式布局演示");
this.setSize(300,200);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //禁止用户改变窗体大小
this.setResizable(false); //显示窗体
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing(); } }

三大常用布局管理器--网格
网格布局GridLayout--介绍
GridLayout布局, 听其名⽽知其意,它将容器分割成多⾏多列,组件被填充到每个⽹格
中,添加到容器中的组件⾸先放置在左上⻆的⽹格中,然后从左到右放置其它的组件,当
占满该行的所有网格后,接着继续在下一行从左到右放置组件

网格布局GridLayout--注意事项
1、组件的相对位置不随容器的缩放而变化,但大小会变化;
2、所有组件的大小相同;
3、可以通过GridLayout(int rows,int cols,int hgap,int vgap)来指定⽹格的⾏行列,水平间
隙/垂直间隙。
参数说明: rows:行数/cols:列数/hgap:垂直间隙/vgap:水平间隙

import javax.swing.*;
import java.awt.*;
/*
栗子 ⽹格布局GridLayout使⽤演示
* 1、继承JFrame
* 2、定义你需要的各个组件
* 3、创建组件(在构造函数中组件)
* 4、添加组件
* 5、对窗体设置
* 6、显示窗体
*/ public class test_swing extends JFrame {
//定义组件
int size = 9;
JButton jbs[] = new JButton[size]; public test_swing(){
for(int i=0;i<size;i++){
jbs[i] = new JButton(String.valueOf(i+1));
} //添加各个组件
for(int i=0;i<size;i++){
this.add(jbs[i]);
} //设置布局管理器,流式布局默认为剧中对齐
this.setLayout(new GridLayout(3,3,10,10)); //设置窗体属性
this.setTitle("流式布局演示");
this.setSize(300,200);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //禁止用户改变窗体大小
this.setResizable(false); //显示窗体
this.setVisible(true); } public static void main(String[] args) { test_swing win = new test_swing(); } }

三大常用布局管理器--⼩结
开发GUI程序步骤
1、继承JFrame
2、定义需要的组件
3、创建组件
4、设置布局管理器
5、添加组件
6、显示窗体

⾯板组件(JPanel)--使⽤[Window005.java]
JPanel:⾯板组件,⾮顶层容器,⼀个界⾯只可以有⼀个JFrame窗体组件,但可以有多个
JPanel⾯板组件,⽽JPanel上也可以使⽤FlowLayout、 BorderLayout、 GirdLayout等各种
布局管理器,这样可以组合使⽤达到较为复杂的布局效果

⾯板(JPanel)组件--注意事项
1、 JPanel是JComponent的⼦类;
2、属于容器类组件,可以加⼊别的组件;
3、默认布局管理器是流式布局(FlowLayout)

import javax.swing.*;
import java.awt.*;
/*
栗子 多种布局管理器,面板组件(Jpanel)--使用
*/ public class test_swing extends JFrame {
//定义组件
JPanel jp1,jp2;
JButton jb1,jb2,jb3,jb4,jb5,jb6; public test_swing(){
//创建组件
jp1 = new JPanel();
jp2 = new JPanel(); jb1 = new JButton("西瓜");
jb2 = new JButton("苹果");
jb3 = new JButton("荔枝");
jb4 = new JButton("葡萄");
jb5 = new JButton("桔子");
jb6 = new JButton("香蕉"); //设置布局管理器(Jpanel默认流布局) //添加JPanel
jp1.add(jb1);
jp1.add(jb2);
jp2.add(jb3);
jp2.add(jb4);
jp2.add(jb5); //把Panel加入JFrame
this.add(jp1,BorderLayout.NORTH);
this.add(jb6,BorderLayout.CENTER);
this.add(jp2,BorderLayout.SOUTH); //设置窗体属性
this.setSize(300,250);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //禁止用户改变窗体大小
this.setResizable(false); //显示窗体
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
import java.awt.*;
/*
栗子 Swing组件 文本框 (JTextField)/密码框(JPasswordField)/标签(JLable)
*/ public class test_swing extends JFrame {
//定义组件
JPanel jp1,jp2,jp3;
JLabel jlb1,jlb2;
JButton jb1,jb2;
JTextField jtf;
JPasswordField jpf; public test_swing(){
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
//标签
jlb1 = new JLabel("用户名");
jlb2 = new JLabel("密码");
//按钮
jb1 = new JButton("登录");
jb2 = new JButton("取消");
//文本框
jtf = new JTextField(10);
//密码框
jpf = new JPasswordField(10); //设置布局管理器
this.setLayout(new GridLayout(3,1)); //添加JPanel
jp1.add(jlb1);
jp1.add(jtf); jp2.add(jlb2);
jp2.add(jpf); jp3.add(jb1);
jp3.add(jb2); //把Panel加入JFrame
this.add(jp1);
this.add(jp2);
this.add(jp3); //设置窗体属性
this.setTitle("用户登录");
this.setSize(300,150);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//显示窗体
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
import java.awt.*;
/*
栗子 复选框(JCheckBox)和单选框(JRadioButton)
*/ public class test_swing extends JFrame {
//定义组件
JPanel jp1,jp2,jp3;
JLabel jl1,jl2;
JCheckBox jcb1,jcb2,jcb3;
JRadioButton jrb1,jrb2;
ButtonGroup bg;
JButton jb1,jb2; public test_swing(){
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel(); jl1 = new JLabel("你最喜欢的运动:");
jl2 = new JLabel("你的性别:"); jcb1 = new JCheckBox("足球");
jcb2 = new JCheckBox("篮球");
jcb3 = new JCheckBox("网球"); jrb1 = new JRadioButton("男");
jrb2 = new JRadioButton("女"); jb1 = new JButton("注册用户");
jb2 = new JButton("取消注册"); //一定要把jrb1与jrb2放到一个ButtonGroup中
ButtonGroup bg = new ButtonGroup();
bg.add(jrb1);
bg.add(jrb2); //创建布局
this.setLayout(new GridLayout(3,1)); //加入组件
jp1.add(jl1);
jp1.add(jcb1);;
jp1.add(jcb2);
jp1.add(jcb3); jp2.add(jl2);
jp2.add(jrb1);
jp2.add(jrb2); jp3.add(jb1);
jp3.add(jb2); this.add(jp1);
this.add(jp2);
this.add(jp3); //设置窗体
this.setTitle("用户注册");
this.setSize(300,150);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
import java.awt.*;
/*
栗子 下拉框(JComboBox)/列表框(JList)/滚动空格(JScrollPane)
*/ public class test_swing extends JFrame {
//定义组件
JPanel jp1,jp2;
JLabel jl1,jl2;
JComboBox jcb;
JList jl;
JScrollPane jsp; public test_swing(){
//建立组件
jp1 = new JPanel();
jp2 = new JPanel(); jl1 = new JLabel("你的籍贯:");
jl2 = new JLabel("旅游地点:"); String[] jg = {"北京","上海","天津","火星"};
jcb = new JComboBox(jg); String[] dd = {"长城","东方明珠","海河","什么什么"};
jl = new JList(dd); //设置你希望显示多少个选项
jl.setVisibleRowCount(2);//滚动条显示setVisibleRowCount(?)?为显示条数
jsp = new JScrollPane(jl); //设定布局
this.setLayout(new GridLayout(3,1)); //加入组件
jp1.add(jl1);
jp1.add(jcb); jp2.add(jl2);
jp2.add(jsp); this.add(jp1);
this.add(jp2); //设置窗体
this.setTitle("用户注册");
this.setSize(300,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
/*
栗子 金山词霸2007 拆分创个JsplllitPane属于容器类 【备注】 java中ImageIcon路径问题
一、问题 ImageIcon icon = new ImageIcon("logo.jpg"); 执行结果是icon无法显示 二、解决 类中有如下调用: ImageIcon icon = new ImageIcon("1.jpg"); 很自然地认为当前类文件和图片在同一路径下即可。 其实所谓的相对路径起点是工程的根目录,即project。 这行代码执行时在project目录下查找名为a.gif的文件,结果当然是找不到。 要得到工程的相对路径可通过System.getProperty("user.dir")得到。 对图片和对文件的查找应该是一致的,如new File()。 1、假如你的工程根目录为:Project1 你的图片文件放在:Project1/src/images/1.jpg 所以正确的调用是(不要加Project1): ImageIcon icon = new ImageIcon("src/images/1.jpg"); 2、假如你的工程根目录为:Project1 你的图片文件在:Project1/src/com.liuyanzhao/1.jpg 所以正确的调用是(com.liuyanzhao是包名) ImageIcon icon = new ImageIcon("src/com/liuyanzhao/1.jpg"); 这行代码执行时在project/test目录下查找到了文件 总结起来就是一句话:所谓相对路径就是相对于工程根目录的位置^_^ 三、其他
查看了一下ImageIcon的构造函数。
Public ImageIcon(String filename)//参数可以是绝对路径也可以是相对路径
Public ImageIcon(URL url) 第一种构造不在赘述。 第二种通过URL来得到图片 URL url = getClass().getResource("a.gif"); //当前编译后class文件所在目录查找
ImageIcon icon = new ImageIcon(url); ImageIcon支持GIF、JPG、PNG等格式。 原文地址:http://blog.csdn.net/anakinlu/article/details/5623688 */ public class test_swing extends JFrame {
//定义组件
JSplitPane jsp;
JList jl;
JLabel jlb; public test_swing(){
String[] words = {"boy","gril","bird","close"};
jl = new JList(words); jlb = new JLabel(new ImageIcon("images\\dog.jpg"));//这是相对路径
//下面是绝对路径
//jlb = new JLabel(new ImageIcon("D:\\zidonghua\\java_test_one\\src\\main\\java\\images\\dog.jpg")); //拆分创个
jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jl,jlb);
//可以收缩变化
jsp.setOneTouchExpandable(true); //设定布局管理器(JFrame本身就是BorderLayout布局) //加入组件
this.add(jsp); //设置窗体
this.setTitle("金山词霸2007");
this.setSize(400,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
import java.awt.*;
/*
栗子 qq聊天界面 多行文本框(JTextArea)组件
*/ public class test_swing extends JFrame {
//定义组件
JTextArea jta = null;
JScrollPane jsp = null;
JPanel jp1 = null;
JComboBox jcb = null;
JTextField jtf = null;
JButton jb = null; public test_swing(){
//构建组件
jta = new JTextArea();
jsp = new JScrollPane(jta);
jp1 = new JPanel();
String[] chatter = {"布什","拉登"};
jcb = new JComboBox(chatter);
jtf = new JTextField(10);
jb = new JButton("发送"); //设定布局管理器(JFrame本身就是BorderLayout布局) //加入组件
jp1.add(jcb);
jp1.add(jtf);
jp1.add(jb); this.add(jsp);
this.add(jp1, BorderLayout.SOUTH); //设置窗体
this.setTitle("QQ聊天窗口");
this.setIconImage(new ImageIcon("images\\dog.jpg").getImage());//设置标题栏内图标
this.setSize(400,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
import java.awt.*;
/*
栗子 qq登录页面 页签(JTabbedPane) 选项卡创个
*/ public class test_swing extends JFrame {
//定义组件
//主页面北部
JLabel jl1; //主页面南部
JButton jb1,jb2,jb3;
JPanel jp1; //主页面中部
JTabbedPane jtp;
JPanel jp2,jp3,jp4; JLabel jl2,jl3,jl4,jl5;
JTextField jtf;
JPasswordField jpf;
JButton jb4;
JCheckBox jcb1,jcb2; //JPanel2组件
JLabel jl6,jl7;
JTextField jtf1;
JPasswordField jpf1; //Jpanel3组件
JLabel jl8,jl9;
JTextField jtf2;
JPasswordField jpf2; public test_swing(){
//构建组件
jl1 = new JLabel(new ImageIcon("images/dog.jpg")); //创建JFrame中部JPanel2组件
jl2 = new JLabel("QQ号码",JLabel.CENTER);
jl3 = new JLabel("QQ密码",JLabel.CENTER);
jl4 = new JLabel("忘记密码",JLabel.CENTER);
jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体、字号
jl4.setForeground(Color.BLUE);//字体颜色
jl5 = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标移动后jl5会变成手指图标 jtf = new JTextField();
jpf = new JPasswordField();
jb4 = new JButton("清除号码");//JButton上可以放图片。new JButton(new ImageIcon("图片路径")) jcb1 = new JCheckBox("隐身登录");
jcb2 = new JCheckBox("记住密码"); jtp = new JTabbedPane();//选项卡窗格
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel(); //创建JFrame中部JTabbedPane选项卡Jpanel3组件
jl6 = new JLabel("手机号码",JLabel.CENTER);
jl7 = new JLabel("密 码",JLabel.CENTER);
jtf1 = new JTextField(20);
jpf1 = new JPasswordField(20); //创建JFrame中部JtabbedPane选项卡Jpanel4组件
jl8 = new JLabel("电子邮箱",JLabel.CENTER);
jl9 = new JLabel("密 码",JLabel.CENTER);
jtf2 = new JTextField(20);
jpf2 = new JPasswordField(20); //创建JFrame南部Jpanel1组件
jp1 = new JPanel();
jb1 = new JButton("登 录");
jb2 = new JButton("取 消");
jb3 = new JButton("注册向导"); //设定布局管理器
jp2.setLayout(new GridLayout(3,1));
//jp3.setLayout(new GridLayout(2,2));
//jp4.setLayout(new GredLayout(2,2)); //加入组件
//将组件添加到Jpanel2中
jp2.add(jl2);//加入QQ号码标签
jp2.add(jtf);//加入文本框
jp2.add(jb4);//加入清除号码按钮 jp2.add(jl3);//QQ密码标签
jp2.add(jpf);//密码框
jp2.add(jl4);//忘记密码 jp2.add(jcb1);//隐身登录复选框
jp2.add(jcb2);//记住密码复选框
jp2.add(jl5);//申请密码保护标签 //将组件添加到JPanel3中
jp3.add(jl6);
jp3.add(jtf1);
jp3.add(jl7);
jp3.add(jpf1); //将组件添加到JPanel4中
jp4.add(jl8);
jp4.add(jtf2);
jp4.add(jl9);
jp4.add(jpf2); //添加到JPanel中
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3); //将面板添加到选项卡窗格上
jtp.add("QQ号码",jp2);//第一个参数代表选项卡名称,第二个代表对应的面板 jtp.add("手机号码",jp3);
jtp.add("电子邮箱",jp4); //将JLabel1添加到Frame北部
this.add(jl1,BorderLayout.NORTH); //将Jpanle2添加到Frame中部
this.add(jtp,BorderLayout.CENTER); //将JPanel1添加到Frame南部
this.add(jp1,BorderLayout.SOUTH); //设置窗体
this.setTitle("QQ登录窗口");
this.setIconImage(new ImageIcon("images\\dog.jpg").getImage());//设置标题栏内图标
this.setSize(350,300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);//设置窗体大小不可改变 } public static void main(String[] args) {
test_swing win = new test_swing();
} }

import javax.swing.*;
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
/*
栗子 记事本界面
1、菜单组件
JMenuBar 菜单条组件 树⼲
JMenu 菜单组件 树枝
JMenuItem 菜单项组件 树叶
2、⼆级菜单制作
JMenu⾥⾯可以嵌套JMenu
3、⼯具条组件
JToolBar 容器类组件
*/ public class test_swing extends JFrame {
//定义组件
JMenuBar jmb;//菜单条
JMenu menu1,menu2,menu3,menu4,menu5;//主菜单:文件、编辑、格式、查看、帮助
JMenuItem item2,item3,item4,item5,item6,item7;//子菜单:新建、打开、保存、另存为、页面设置、打印、退出
JMenu xinjian;//二级菜单
JMenuItem file,project; //编辑组定义组件
//编辑:撤销、剪切、复制、粘贴、删除、查找、查找下一个、转到、全选、时间/日期
JMenuItem eitem1,eitem2,eitem3,eitem4,eitem5,eitem6,eitem7,eitem8,eitem9,eitem10,eitem11; //格式组定义组件
JMenuItem oitem1,oitem2;//格式:自动换行、字体 //查看组定义组件
JMenuItem vitem1;//查看:状态栏 //帮助组定义组件
JMenuItem hitem1,hitem2;//帮助:查看帮助、关于记事本 JTextArea jta;
//工具条
JToolBar jtb;
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8; public test_swing(){
//构建组件
//工具条
jtb = new JToolBar();
jb1 = new JButton(new ImageIcon("images/dog.jpg"));
jb1.setToolTipText("新建");
jb2 = new JButton(new ImageIcon("images/dog.jpg"));
jb2.setToolTipText("打开");
jb3 = new JButton(new ImageIcon("images/dog.jpg"));
jb3.setToolTipText("保存");
jb4 = new JButton(new ImageIcon("images/dog.jpg"));
jb4.setToolTipText("复制");
jb5 = new JButton(new ImageIcon("images/dog.jpg"));
jb5.setToolTipText("删除");
jb6 = new JButton(new ImageIcon("images/dog.jpg"));
jb6.setToolTipText("编辑");
jb7 = new JButton(new ImageIcon("images/dog.jpg"));
jb7.setToolTipText("打印");
jb8 = new JButton(new ImageIcon("images/dog.jpg"));
jb8.setToolTipText("关闭"); jmb = new JMenuBar(); //主菜单
menu1 = new JMenu("文件(F)");
menu1.setMnemonic('F');//设置助记符
menu2 = new JMenu("编辑(E)");
menu2.setMnemonic('E');
menu3 = new JMenu("格式(O)");
menu3.setMnemonic('O');
menu4 = new JMenu("查看(V)");
menu4.setMnemonic('V');
menu5 = new JMenu("帮助(H)");
menu5.setMnemonic('H'); //文件--新建--子目录
xinjian = new JMenu("新建");
file = new JMenuItem("文件");
project = new JMenuItem("工程"); item2 = new JMenuItem("打开(O)");
item2.setMnemonic('O');
//设置ctrl快捷组合键
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
item3 = new JMenuItem("保存(S)");
item3.setMnemonic('S');
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item4 = new JMenuItem("另存为(A)");
item4.setMnemonic('A');
item5 = new JMenuItem("页面设置(U)");
item5.setMnemonic('U');
item6 = new JMenuItem("打印(P)");
item6.setMnemonic('P');
item6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
item7 = new JMenuItem("退出(X)");
item7.setMnemonic('X'); eitem1 = new JMenuItem("撤销(U)");
eitem1.setMnemonic('U');
eitem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
eitem2 = new JMenuItem("剪切(T)");
eitem2.setMnemonic('T');
eitem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
eitem3 =new JMenuItem("复制(C)");
eitem3.setMnemonic('C');
eitem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
eitem4 = new JMenuItem("粘贴(P)");
eitem4.setMnemonic('P');
eitem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
eitem5 = new JMenuItem("删除(L)");
eitem5.setMnemonic('L');
eitem5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
eitem6 = new JMenuItem("查找(F)");
eitem6.setMnemonic('F');
eitem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
eitem7 = new JMenuItem("查找下一个(N)");
eitem7.setMnemonic('N');
eitem7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
eitem8 = new JMenuItem("替换(R)");
eitem8.setMnemonic('R');
eitem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
eitem9 = new JMenuItem("转到(G)");
eitem9.setMnemonic('G');
eitem9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
eitem10 = new JMenuItem("全选(A)");
eitem10.setMnemonic('A');
eitem10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
eitem11 = new JMenuItem("时间/日期(D)");
eitem11.setMnemonic('D');
eitem11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0)); oitem1 = new JMenuItem("自动换行(W)");
oitem1.setMnemonic('W');
oitem2 = new JMenuItem("字体(F)");
oitem2.setMnemonic('F'); vitem1 = new JMenuItem("状态栏(S)");
vitem1.setMnemonic('S'); hitem1 = new JMenuItem("查看帮助(H)");
hitem1.setMnemonic('H');
hitem2 = new JMenuItem("关于记事本(A)");
hitem2.setMnemonic('A'); jta = new JTextArea(); //设定布局管理器 //加入组件
//将按钮添加到工具条上
jtb.add(jb1);
jtb.add(jb2);
jtb.add(jb3);
jtb.add(jb4);
jtb.add(jb5);
jtb.add(jb6);
jtb.add(jb7);
jtb.add(jb8); //将菜单项添加到菜单上
xinjian.add(file);
xinjian.add(project); menu1.add(xinjian);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu1.addSeparator();//添加分割线
menu1.add(item5);
menu1.add(item6);
menu1.addSeparator();
menu1.add(item7); menu2.add(eitem1);
menu2.addSeparator();
menu2.add(eitem2);
menu2.add(eitem3);
menu2.add(eitem4);
menu2.add(eitem5);
menu2.addSeparator();
menu2.add(eitem6);
menu2.add(eitem7);
menu2.add(eitem8);
menu2.add(eitem9);
menu2.addSeparator();
menu2.add(eitem10);
menu2.add(eitem11); menu3.add(oitem1);
menu3.add(oitem2); menu4.add(vitem1); menu5.add(hitem1);
menu5.addSeparator();
menu5.add(hitem2); //将菜单添加到菜单条
jmb.add(menu1);
jmb.add(menu2);
jmb.add(menu3);
jmb.add(menu4);
jmb.add(menu5); //将菜单条添加到窗体
this.setJMenuBar(jmb); //将工具条添加到窗体
this.add(jtb,BorderLayout.NORTH); JScrollPane jsp = new JScrollPane(jta);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.add(jsp); //设置窗体
this.setTitle("Java记事本");
this.setSize(500,400);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) {
test_swing win = new test_swing();
} }

												

【Java】【图形】的更多相关文章

  1. java 图形界面

    1.创建一个窗口框架 /** * java 用户界面框架 * 2016/5/10 */ package org.windows; import javax.swing.*; public class ...

  2. Java图形界面学习---------简易登录界面

    /** * @author Administrator * Java图形界面学习---------简易登录界面 * date:2015/10/31 */ import java.awt.BorderL ...

  3. JAVA 图形开发中组件对齐方法及界面开发

    /*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 在上篇博客中提到了JAVA图形界面开发时的两种布局,流式布局和边框布局. 在实际使用中可能会发现,往 ...

  4. 【转】java图形界面设计(AWT)

    [转自]http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html 1.       基本的java Frame操作. Java的图形界面的类主要包括AW ...

  5. java图形界面设计

    1.       基本的java Frame操作. Java的图形界面的类主要包括AWT和Swing.在AWT中图形元素的父类为Component. 继承关系如下:Component->Cont ...

  6. Java 图形界面开发--图文并茂建立学生管理系统

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/50932501 冷血之心的博客) 图形用户界面(Graphics U ...

  7. Java图形界面GUI

    Java图形界面GUI 设置窗体JFrame对象 package com.Aha.Best; import javax.swing.ImageIcon; import javax.swing.JFra ...

  8. Java图形用户界面编程

    1.Java图形用户界面编程概述 JavaAPI中提供了两套组件用于支持编写图形用户界面:AWT(抽象窗口包)和Swing 2.  容器(Container):重量级容器和轻量级容器(一个容器可以放置 ...

  9. java图形界面写个小桌面,内置简单小软件

    一.做个这样的效果,双击图标打开相应的应用 二.主界面类,使用JavaSwing的JDesktopPane类创建这个桌面 package com.swing; import java.awt.Bord ...

  10. Java学习笔记--Java图形用户界面

    AWT:抽象窗口组件工具包 Abstract Windows Toolkit(AWT)是最原始的 Java GUI 工具包.AWT 的主要优点是,它在 Java 技术的每个版本上都成为了一种标准配置, ...

随机推荐

  1. golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web

    golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web Nginx 部署 - beego: 简约 & 强大并存的 Go 应用框架https://bee ...

  2. python docopt模块详解

    python docopt模块详解 docopt 本质上是在 Python 中引入了一种针对命令行参数的形式语言,在代码的最开头使用 """ ""&q ...

  3. python中的logger模块

    logger 提供了应用程序可以直接使用的接口handler将(logger创建的)日志记录发送到合适的目的输出filter提供了细度设备来决定输出哪条日志记录formatter决定日志记录的最终输出 ...

  4. 前端框架VUE----对象的单体模式

    对象的单体模式 为了解决箭头函数this指向的问题 推出来一种写法 对象的单体模式 1 var person = { 2 name:'小马哥', 3 age:12, 4 fav(){ 5 consol ...

  5. html5的理解

    1.良好的移动性,以移动设备为主 2.响应式设计,以适应自动变化的屏幕尺寸 3.支持离线缓存技术,webStorage本地缓存 4.新增canvas.video.audio等新标签元素,新增特殊内容元 ...

  6. ubuntu_virtualenv

    sudo pip install virtualenv 1.安装virtualenv(需要先安装pip): $ [sudo] pip install virtualenv 2.创建虚拟环境: $ vi ...

  7. 细数那些不懂Spring底层原理带来的伤与痛

    1. 什么是spring? Spring 是个Java企业级应用的开源开发框架.Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用.Spring 框架目标是简化Jav ...

  8. tomcat 启动时遇到org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs

    当发生这样的错误的时候 org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet ...

  9. Linux笔记 #08# shell编程从零开始到低配学生管理系统

    先熟悉一下基本语法(运行环境是装git的时候一起装的那个windows下的bash): #!/bin/bash # 实现两个函数 # appendToFile()追加一行到文件 # readFile( ...

  10. 详解Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...