/*
栗子 了解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. localstorage跨域解决方案

    localstorage也存在 跨域的问题, [解决思路如下] 在A域和B域下引入C域,所有的读写都由C域来完成,本地数据存在C域下; 因此 A哉和B域的页面必定要引入C域的页面; 当然C域最好是主域 ...

  2. centos-ftp搭建

    参照https://blog.csdn.net/a735834365/article/details/80622105 https://blog.csdn.net/a735834365/article ...

  3. Censor SCU - 4438

    frog is now a editor to censor so-called sensitive words (敏感词). She has a long text (p). Her job is ...

  4. to refactor for refactor

    v1.1 if all algorithm are in one function, it will expand. so each operate type should be separated. ...

  5. 使用URLConnection进行访问

    package test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOExcepti ...

  6. jdk和二进制 常量.变量

    java中的jdk和jre之间的关系 二进制和十进制之间的转换问题 使用的方法是碾转相除法:就是让一个数除以2,取余数,除到商为0为止,然后倒着将余数组合起来. 入门案例  HelloWorld /* ...

  7. Golang框架beego电影网爬虫小试牛刀

    学习了一段时间golang,又参考课程学习了beego开发网站爬虫,项目的目录结构是: 采集的目标是豆瓣网电影,入口地址是:https://movie.douban.com/subject/19008 ...

  8. 静态代码检查findbugs/阿里巴巴开发规范

    findbugs,基本上三类严重的bug检测出来都是比较准确的,如下: 阿里巴巴开发规范 前面两类都是比较重要的: 参考: https://blog.csdn.net/qq_27093465/arti ...

  9. "添加与删除程序"报rundll32错误

    无法启动"添加与删除程序"系统报rundll32错误 系统反馈以下信息: rundll32.exe应用程序错误"0x00310030"指令 解决方法: 1.启动 ...

  10. 使用Excel批量给数据添加单引号和逗号

    表格制作过程如下: A2表格暂时为空,模板建立完成以后,用来放置原始数据: 在B2表格内输入公式:  ="'"&A2&"'"&" ...