1)拆分窗格:JSplitPane属于容器类组件
/*
* 仿金山词霸
* */
package com.test;
import java.awt.*;
import javax.swing.*;
public class Demo9 extends JFrame{
//定义组件
JSplitPane jsp;
JList jList;
JLabel jLabel;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo9 demo9=new Demo9();
}
public Demo9() {
// TODO Auto-generated constructor stub
//创建组件
String []words={"boy","girl","bird"};
jList=new JList(words);
jLabel=new JLabel(new ImageIcon("img/ciba.jpg"));
//拆分窗格
jsp=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jList,jLabel);
//可以伸缩变化
jsp.setOneTouchExpandable(true);
//设置布局管理器
//添加组件
this.add(jsp);
//设置大小
this.setSize(400, 300);
this.setLocation(500, 200);
this.setTitle("金山词霸");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
/*
* 仿QQ聊天界面,涉及JTextArea多行文本框组件
* */
package com.test;
import java.awt.*;
import javax.swing.*;
public class Demo10 extends JFrame{
//定义组件
JTextArea jta=null;
JPanel jPanel=null;
JComboBox jcb=null;
JTextField jtf=null;
JButton jb=null;
JScrollPane jsp=null;
public static void main(String[] args) {
// TODO Auto-generated method stub
Demo10 demo10=new Demo10();
}
public Demo10() {
// TODO Auto-generated constructor stub
//创建组件
jta=new JTextArea();
jsp=new JScrollPane(jta);
jPanel=new JPanel();
String []chatter={"奥巴马","普京"};
jcb=new JComboBox(chatter);
jtf=new JTextField(10);
jb=new JButton("发送");
//设置布局
//添加组件
jPanel.add(jcb);
jPanel.add(jtf);
jPanel.add(jb);
//加入JFrame
this.add(jsp);
this.add(jPanel,BorderLayout.SOUTH);
//设置属性
this.setSize(300,200);
this.setTitle("QQ聊天");
this.setLocation(500,300);
this.setIconImage(new ImageIcon("img/qq.jpg").getImage());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
/*QQ登陆界面 * */ package com.test; import java.awt.*; import javax.swing.*; public class Demo11 extends JFrame{ //定义组件 //北部区域 JLabel jLabel1; //南部区域 JButton button1,button2,button3; JPanel jPanel1; // 中部区域 JTabbedPane jTabbedPane;//选项卡窗口 JPanel jPanel2,jPanel3,jPanel4; JLabel jLabel2,jLabel3,jLabel4,jLabel5; //号码输入文本框 JTextField jTextField; //密码 JPasswordField jPasswordField; //清除号码button JButton button4; //隐身登陆,记住密码 JCheckBox box1,box2; public static void main(String[] args) { // TODO Auto-generated method stub Demo11 demo11=new Demo11(); } public Demo11() { // TODO Auto-generated constructor stub //创建组件 jLabel2=new JLabel("QQ号码 ", JLabel.CENTER); jLabel3=new JLabel("QQ密码 ", JLabel.CENTER); jLabel4=new JLabel("忘记密码", JLabel.CENTER); jLabel4.setFont(new Font("宋体", Font.PLAIN, 16));//设置字体样式 jLabel4.setForeground(Color.BLUE);//设置字体颜色方法 jLabel5=new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>"); jLabel5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); //输入号码框 jTextField=new JTextField(11); //输入密码框 jPasswordField=new JPasswordField(11); // button4=new JButton("清除"); //button放入图片 button4=new JButton(new ImageIcon("img/clear.gif")); //复选框 box1=new JCheckBox("隐身登录"); box2=new JCheckBox("记住密码"); // 北部区域 jLabel1=new JLabel(new ImageIcon("img/tou.gif")); //南部区域 jPanel1=new JPanel(); //button1=new JButton("登录"); button1=new JButton(new ImageIcon("img/denglu.gif")); // button2=new JButton("取消"); button2=new JButton(new ImageIcon("img/quxiao.gif")); button3=new JButton(new ImageIcon("img/xiangdao.gif")); //中部区域 jTabbedPane=new JTabbedPane(); jPanel2=new JPanel(); jPanel3=new JPanel(); jPanel3.setBackground(Color.RED);//给面板设置背景色 jPanel4=new JPanel(); jPanel4.setBackground(new Color(0, 0, 255)); //将面板添加到选项卡窗格上 jTabbedPane.add("QQ号码", jPanel2);//第一个参数代表选项卡的名称 jTabbedPane.add("手机号码", jPanel3); jTabbedPane.add("电子邮箱", jPanel4); //添加组件 jPanel1.add(button1); jPanel1.add(button2); jPanel1.add(button3); jPanel2.add(jLabel2); jPanel2.add(jTextField); jPanel2.add(button4); jPanel2.add(jLabel3); jPanel2.add(jPasswordField); jPanel2.add(jLabel4); jPanel2.add(box1); jPanel2.add(box2); jPanel2.add(jLabel5); this.add(jPanel1,BorderLayout.SOUTH); this.add(jLabel1,BorderLayout.NORTH); this.add(jTabbedPane,BorderLayout.CENTER); //展现组件 ImageIcon icon=new ImageIcon("img/qq.gif"); this.setIconImage(icon.getImage());//给窗体设置图标方法 this.setSize(350, 260); this.setLocation(600,400); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } }
记事本界面
涉及到新的swing组件
1)菜单组件
JMenuBar 菜单条组件 树干
JMenu 菜单组件 树枝
JMenuItem 菜单项组件树叶
2)二级菜单制作
JMenu里面可以嵌套JMenu
3)工具条组件
JToolBar 容器类组件
/* *记事本界面 * * */ package com.test; import javax.swing.*; import java.awt.*; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; public class Demo12 extends JFrame{ //定义组件 JMenuBar jmb; JMenu menu1,menu2,menu3,menu4,menu5,menu6; JMenuItem item1,item2,item3,item4,item5,item6,item7; JMenu xinjian;//二级菜单 JMenuItem file,project; JTextArea jta; //工具条 JToolBar jtb; JButton jb1,jb2,jb3,jb4,jb5,jb6; public Demo12() { // TODO Auto-generated constructor stub //创建组件 jtb=new JToolBar(); jb1=new JButton("新建"); // jb1=new JButton(new ImageIcon("new.jpg")); jb1.setToolTipText("新建");//设置提示信息 jb2=new JButton("打开"); // jb1=new JButton(new ImageIcon("OPEN.jpg")); jb2.setToolTipText("打开");//设置提示信息 jb3=new JButton("保存"); jb4=new JButton("复制"); jb5=new JButton("剪切"); jb6=new JButton("粘贴"); 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("打开"); item3=new JMenuItem("保存(S)"); item3.setMnemonic('S'); //给菜单项添加快捷方式 item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK)); item4=new JMenuItem("另存为(A)"); item5=new JMenuItem("页面设置(U)"); item6=new JMenuItem("打印(P)"); item7=new JMenuItem("退出(X)"); jta=new JTextArea(); //设置布局 //添加组件 //将按钮添加到工具条上 jtb.add(jb1); jtb.add(jb2); jtb.add(jb3); jtb.add(jb4); jtb.add(jb5); jtb.add(jb6); //将菜单项添加到菜单上 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); //将菜单添加到菜单条上 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("记事本"); this.setSize(500, 400);// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { // TODO Auto-generated method stub Demo12 demo12=new Demo12(); } }