首页 > 编程 > Java > 正文

java图形界面编程实战代码

2019-11-26 08:50:25
字体:
来源:转载
供稿:网友

关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例。

程序是为了方便用户使用的,Java引入图形化界面编程。

1.JFrame 是容器类

2.AWT 是抽象窗口组件工具包,是 Java 最早的用于编写图形节目应用程序的开发包。

3.Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。

代码实例1:

package com.zhouzhou;//练习网格布局import java.awt.*;import javax.swing.*;public class Demo9 extends JFrame {  // 定义组件  int size = 9;  JButton jbs[] = new JButton[size];  public static void main(String[] args) {    // 创建实例    Demo9 de = new Demo9();  }  // 构造函数  public Demo9() {    // 创建组件    for (int i = 0; i < size; i++) {      jbs[i] = new JButton(String.valueOf(i));    }    // 设置网格布局,这里只有前两个参数(行/列)3和3 的话,网格没有空隙    this.setLayout(new GridLayout(3, 3, 10, 10));    // 添加组件    for (int i = 0; i < size; i++) {      this.add(jbs[i]);    }    // 设置窗体属性    this.setTitle("网格布局案例");    this.setSize(300, 400);    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setLocation(200, 200);    // 显示    this.setVisible(true);  }}

代码实例2:

package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo10 extends JFrame {  // 定义组件  JPanel jp1, jp2;  JButton jb1, jb2, jb3, jb4, jb5, jb6;  public static void main(String[] args) {    // TODO Auto-generated method stub    Demo10 de = new Demo10();  }  // 构造函数  public Demo10() {    // 创建组件    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布局默认是BorderLoyout// 添加JPanel    //JPanel属于容器类组件,可以加入别的组件    jp1.add(jb1);    jp1.add(jb2);        jp2.add(jb3);    jp2.add(jb4);    jp2.add(jb5);    // 把jpanel 加入JFrame    this.add(jp1, BorderLayout.NORTH);    this.add(jb6, BorderLayout.CENTER);    this.add(jp2, BorderLayout.SOUTH);    this.setSize(300, 400);    this.setLocation(200, 200);    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例3:

package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo11 extends JFrame {  // 定义组件  JPanel jp1, jp2, jp3;  JLabel jlb1, jlb2;  JButton jb1, jb2;  JTextField jtf1;  JPasswordField jpf1;  public static void main(String[] args) {    // TODO Auto-generated method stub    Demo11 d1 = new Demo11();  }  // 构造函数  public Demo11() {    jp1 = new JPanel();    jp2 = new JPanel();    jp3 = new JPanel();    jlb1 = new JLabel("用户名");    jlb2 = new JLabel("密  码");    jb1 = new JButton("登录");    jb2 = new JButton("取消");    jtf1 = new JTextField(10);    jpf1 = new JPasswordField(10);// 设置布局管理(上面忘记:extends JFrame,这里出错了)    this.setLayout(new GridLayout(3, 1));    // 加入各个组件    jp1.add(jlb1);    jp1.add(jtf1);    jp2.add(jlb2);    jp2.add(jpf1);    jp3.add(jb1);    jp3.add(jb2);    // 加入到JFrame    this.add(jp1);    this.add(jp2);    this.add(jp3);    this.setSize(250, 150);    this.setTitle("登录");    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例4:

package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo12 extends JFrame {  // 定义组件  JPanel jp1, jp2, jp3;  JLabel jlb1, jlb2;  JCheckBox jcb1, jcb2, jcb3;  JRadioButton jrb1, jrb2;  JButton jb1, jb2;  // 单选设置  ButtonGroup bg, bg2;  public static void main(String[] args) {    // TODO Auto-generated method stub    Demo12 d2 = new Demo12();  }  // 构造函数  public Demo12() {    jp1 = new JPanel();    jp2 = new JPanel();    jp3 = new JPanel();    jlb1 = new JLabel("你喜欢的运动");    jlb2 = new JLabel("你的性别");    jcb1 = new JCheckBox("足球");    jcb2 = new JCheckBox("篮球");    jcb3 = new JCheckBox("网球");    // 下面可以设置单选    // ButtonGroup bg2=new ButtonGroup();    // bg2.add(jcb1);    // bg2.add(jcb2);    // bg2.add(jcb2);    jrb1 = new JRadioButton("男");    jrb2 = new JRadioButton("女");    // 一定要把jrb1,jrb2放入到一个ButtonGroup里面    ButtonGroup bg = new ButtonGroup();    bg.add(jrb1);    bg.add(jrb2);    jb1 = new JButton("注册用户");    jb2 = new JButton("取消用户");    this.setLayout(new GridLayout(3, 1));    jp1.add(jlb1);    jp1.add(jcb1);    jp1.add(jcb2);    jp1.add(jcb3);    jp2.add(jlb2);    jp2.add(jrb1);    jp2.add(jrb2);    jp3.add(jb1);    jp3.add(jb2);    // 加入到JFrame    this.add(jp1);    this.add(jp2);    this.add(jp3);    this.setSize(300, 200);    this.setTitle("用户注册界面");    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例5:

package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo13 extends JFrame {  // 定义组件  JPanel jp1, jp2;  JLabel jlb1, jlb2;  JComboBox jcb1;  JList jl1;  JScrollPane jsp;  public static void main(String[] args) {    // TODO Auto-generated method stub    Demo13 d3 = new Demo13();  }  public Demo13() {    jp1 = new JPanel();    jp2 = new JPanel();    jlb1 = new JLabel("您的籍贯是");    jlb2 = new JLabel("您喜欢旅游的地区");    String[] jg = { "北京", "上海", "天津", "重庆", "江苏" };    jcb1 = new JComboBox(jg);    String[] jg2 = { "故宫", "长城", "九寨沟", "天安门", "火星" };    jl1 = new JList(jg2);    // 设置你希望显示多少个选项    jl1.setVisibleRowCount(1);    jsp = new JScrollPane(jl1);    // 布局管理    this.setLayout(new GridLayout(3, 1));    // 添加组件    jp1.add(jlb1);    jp1.add(jcb1);    jp2.add(jlb2);    jp2.add(jsp);    this.add(jp1);    this.add(jp2);    this.setSize(300, 400);    this.setTitle("下拉框练习");    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例6:

package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo14 extends JFrame {  // 定义组件  JSplitPane jsp;  JList jList;  JLabel jl1;  public static void main(String[] args) {    // TODO Auto-generated method stub    Demo14 d4 = new Demo14();  }  public Demo14() {    // 创建组件    String[] words = { "boy", "gril", "bird", "box" };    jList = new JList(words);    // JLabel可以放置图片    jl1 = new JLabel(new ImageIcon("images/1.jpeg"));    // 拆分窗格    jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jList, jl1);    // 可以手动伸缩变化    jsp.setOneTouchExpandable(true);    // 设置布局管理器,它本身就是borderLayout布局,就不用再设置了    // 添加组件    this.add(jsp);    this.setSize(400, 300);    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例7:

package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo15 extends JFrame {  // 定义组件  JTextArea jta = null;// 多行文本框  JScrollPane jsp = null;  JPanel jp1 = null;// 面板  JComboBox jcb = null;// 下拉框组件  JTextField jtf = null;// 文本框  JButton jb = null;  public static void main(String[] args) {    // TODO Auto-generated method stub    Demo15 d5 = new Demo15();  }  // 构造函数  public Demo15() {    // 多行文本框会根据情况自己调节大小    jta = new JTextArea();    jsp = new JScrollPane(jta);    jp1 = new JPanel();    String j2[] = { "北京", "商行", "农行", "师大", "附中", "哈尔滨" };    jcb = new JComboBox(j2);    // 文本框最好设置初值    jtf = new JTextField(10);    jb = new JButton("发送");    // 布局管理    // this.setLayout(new GridLayout(1, 1));    // 添加    jp1.add(jcb);    jp1.add(jtf);    jp1.add(jb);    // 多行文本框是放在这里(JFrame)的!!!    // 因为上面又添加可以滚动的功能,这里传入jsp,而不是jta    this.add(jsp);    // 下面这里就需要定位处理    this.add(jp1, BorderLayout.SOUTH);    // 设置窗体属性,z这里很厉害!!    this.setIconImage((new ImageIcon("images//3.jpg")).getImage());    this.setSize(300, 200);    this.setTitle("QQ登录");    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例8:

package com.zhouzhou;//QQ登录界面制作import java.awt.*;import javax.swing.*;public class Demo16 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;  public static void main(String[] args) {    // TODO Auto-generated method stub    new Demo16();  }  public Demo16() {    // 创建组件    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));    jtf = new JTextField();    jpf = new JPasswordField();    jb4 = new JButton(new ImageIcon("images//login.png"));    jcb1 = new JCheckBox("隐身登录");    jcb2 = new JCheckBox("记住密码");    // 北部区域    jl1 = new JLabel(new ImageIcon("images//headpicture.jpg"));    // 南部区域    jp1 = new JPanel();    jb1 = new JButton(new ImageIcon("images//login.png"));    jb2 = new JButton(new ImageIcon("images//delete.png"));    jb3 = new JButton(new ImageIcon("images//register.png"));    // 中部区域    jtp = new JTabbedPane();    jp2 = new JPanel();    jp3 = new JPanel();    jp3.setBackground(Color.RED);// 给面板设置背景    jp4 = new JPanel();    jp4.setBackground(new Color(0, 0, 255));    // 将面板添加到选项卡窗格上    jtp.add("QQ号码", jp2);// 参数:选项卡名称,面板    jtp.add("手机号码", jp3);    jtp.add("电子邮箱", jp4);    // 设置布局    jp2.setLayout(new GridLayout(3, 3));    // 添加组件    jp1.add(jb1);    jp1.add(jb2);    jp1.add(jb3);    jp2.add(jl2);    jp2.add(jtf);    jp2.add(jb4);    jp2.add(jl3);    jp2.add(jpf);    jp2.add(jl4);    jp2.add(jcb1);    jp2.add(jcb2);    jp2.add(jl5);    this.add(jp1, BorderLayout.SOUTH);    this.add(jl1, BorderLayout.NORTH);    this.add(jtp, BorderLayout.CENTER);    // 展示组件    ImageIcon icon = new ImageIcon("images//qq.png");    this.setIconImage(icon.getImage());// 给窗体设置图标方法    this.setSize(400, 380);    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

代码实例9:

package com.zhouzhou;//记事本界面import java.awt.*;import javax.swing.*;import java.awt.event.*;public class Demo17 extends JFrame {  // 工具条  JToolBar jtb;  JButton jb1, jb2, jb3, jb4, jb5, jb6;  // 菜单条组件  JMenuBar jmb;  JMenu menu1, menu2, menu3, menu4, menu5;  JMenuItem item2, item3, item4, item5, item6, item7;  JMenu xinjian;// 二级菜单  JMenuItem file, project;  JTextArea jta;  public static void main(String[] args) {    // TODO Auto-generated method stub    new Demo17();  }  public Demo17() {    // 创建工具条    jtb = new JToolBar();    jb1 = new JButton(new ImageIcon("images//11.png"));    jb1.setToolTipText("新建");    jb2 = new JButton(new ImageIcon("images//22.png"));    jb2.setToolTipText("打开");    jb3 = new JButton(new ImageIcon("images//33.png"));    jb3.setToolTipText("等待");    jb4 = new JButton(new ImageIcon("images//44.png"));    jb4.setToolTipText("统计");    jb5 = new JButton(new ImageIcon("images//55.png"));    jb5.setToolTipText("参与");    jb6 = new JButton(new ImageIcon("images//66.png"));    jb6.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');    // item1=new JMenuItem(“新建”)    xinjian = new JMenu("新建");    file = new JMenuItem("文件");    project = new JMenuItem("工程");    item2 = new JMenuItem("打开", new ImageIcon("images//77.png"));    item3 = new JMenuItem("保存(S)");    item3.setMnemonic('S');    // 给菜单选项添加快捷方式    item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,        InputEvent.ALT_MASK));    item4 = new JMenuItem("另存为");    item5 = new JMenuItem("页面设置");    item6 = new JMenuItem("打印");    item7 = new JMenuItem("退出");    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("记事本");    ImageIcon icon = new ImageIcon("images//jsb.png");    this.setIconImage(icon.getImage());    this.setSize(1200, 900);    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    this.setVisible(true);  }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表