java图形界面编程实战代码

网友投稿 214 2023-01-02


java图形界面编程实战代码

关于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,ZMHyXAzR 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

Demo14http:// 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);

// ZMHyXAzR多行文本框是放在这里(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;

//ZMHyXAzR 中部区域

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("申请密码保护");

// 鼠标触发变化

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);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:.net 微服务网关(微服务网关zuul)
下一篇:微服务网关功能(微服务网关权限控制)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~