关于java GUIjava
Swing组件:安全
JFrame 窗口组件dom
JLabel 标签工具
JButton 按钮组件字体
JTextField 单行文本框this
系统控件(JDK自带)spa
自定义控件(模仿系统控件):code
继承 JComenemt;orm
复写paint();方法blog
repaint();从新调用方法
接下来是个人做业。
做业一: 设置一个能够不断变化产生随机数的工具,须要有一个按钮暂停或者开始。
import java.awt.event.*; import javax.swing.*; //产生随机数 @SuppressWarnings("serial") public class Dome extends JFrame{ int a = 0,b = 0; public Dome(){ this.setLayout(null); JLabel jlabel3 = new JLabel(); //建立一个文本窗口 jlabel3.setBounds(125,100,50,30); //固定位置 this.add(jlabel3); //将其填入对话框 this.setTitle("0~99999随机"); //设置标题 this.setBounds(0,0,300,300); //设置对话框大小 this.setVisible(true); //对话框可视 while(true){ //循环监听按钮 JButton jbutton = new JButton(); jbutton.setText("开始/中止"); jbutton.setBounds(100,150,100,30); jbutton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ b = b+1; } }); this.add(jbutton); while(b%2==0){ //循环生成随机数 a = (int)(Math.random()*99999); jlabel3.setText(""+a); } } } public static void main(String[] args) { new Dome(); //调用构造器 } }
完成后效果图:这个按钮能够操控开始和暂停。
做业二:作一个登陆框
import javax.swing.*; //登陆界面 @SuppressWarnings("serial") public class Dome extends JFrame{ public Dome(){ this.setLayout(null); //设置首行文字 JLabel jlabel1 = new JLabel(); jlabel1.setText("登陆界面"); jlabel1.setBounds(10,0,200,40); this.add(jlabel1); //显示帐号 JLabel jlabel2 = new JLabel(); jlabel2.setText("帐号:"); jlabel2.setBounds(60,60,50,20); this.add(jlabel2); //显示密码 JLabel jlabel3 = new JLabel(); jlabel3.setText("密码:"); jlabel3.setBounds(60,100,50,20); this.add(jlabel3); //建立输入帐号的文本框 JTextArea jtext1 = new JTextArea(); jtext1.setText("请输入帐号"); jtext1.setBounds(110,60,200,20); this.add(jtext1); //建立输入密码的密码框 JPasswordField jtext2 = new JPasswordField(); jtext2.setBounds(110,100,200,20); this.add(jtext2); //设置登陆按钮 JButton jbutton = new JButton(); jbutton.setText("安全登陆"); jbutton.setBounds(110,160,200,30); this.add(jbutton); //设置窗口标题以及大小 this.setTitle("登陆界面"); this.setBounds(0,0,445,340); this.setVisible(true); } public static void main(String[] args) { new Dome(); } }
完成后效果图:这个登录框目前没有实现登陆功能,不过要实现也很简单,监听按钮,按钮被触发能够读取上面输入的内容,而后再将内容对比你设置的用户名和密码。
若是相同显示登陆成功,若是不一样提示帐号或者密码错误。
做业三 :作个记事本
import java.awt.event.*; import javax.swing.*; @SuppressWarnings("serial") public class Dome extends JFrame{ public Dome(){ this.setLayout(null); JTextArea jtext1 = new JTextArea(); jtext1.setBounds(0,0,400,400); jtext1.setLineWrap(true); this.add(jtext1); //主菜单栏 JMenuBar menuBar = new JMenuBar(); JMenu menu1 = new JMenu("文件"); JMenu menu2 = new JMenu("编辑"); JMenu menu3 = new JMenu("格式"); JMenu menu4 = new JMenu("查看"); JMenu menu5 = new JMenu("帮助"); setJMenuBar(menuBar); menuBar.add(menu1); menuBar.add(menu2); menuBar.add(menu3); menuBar.add(menu4); menuBar.add(menu5); //文件二级菜单 JMenuItem menu11 = new JMenuItem("新建"); JMenuItem menu12 = new JMenuItem("打开"); JMenuItem menu13 = new JMenuItem("保存"); JMenuItem menu14 = new JMenuItem("另存为"); JMenuItem menu15 = new JMenuItem("退出"); menu1.add(menu11); menu1.add(menu12); menu1.add(menu13); menu1.add(menu14); menu1.addSeparator(); menu1.addSeparator(); menu1.add(menu15); //编辑二级菜单 JMenuItem menu21 = new JMenuItem("撤销"); JMenuItem menu22 = new JMenuItem("剪贴"); JMenuItem menu23 = new JMenuItem("复制"); JMenuItem menu24 = new JMenuItem("粘贴"); JMenuItem menu25 = new JMenuItem("删除"); JMenuItem menu26 = new JMenuItem("全选"); menu2.add(menu21); menu2.addSeparator(); menu2.add(menu22); menu2.add(menu23); menu2.add(menu24); menu2.add(menu25); menu2.addSeparator(); menu2.addSeparator(); menu2.add(menu26); //格式 二级菜单 JMenuItem menu31 = new JMenuItem("自动换行"); JMenuItem menu32 = new JMenuItem("字体"); menu3.add(menu31); menu3.add(menu32); //查看二级菜单 JMenuItem menu41=new JMenuItem("状态栏"); menu4.add(menu41); //帮助 JMenuItem menu51 = new JMenuItem("查看帮助"); JMenuItem menu52 = new JMenuItem("关于记事本"); menu5.add(menu51); menu5.addSeparator(); menu5.add(menu52); this.setTitle("记事本"); this.setBounds(0,0,400,400); this.setVisible(true); } public static void main(String[] args) { new Dome(); } }
这个记事本的具体功能尚未要求实现,也就是说目前除了编辑什么都作不了,其实实现也不难,就是将这些按钮都监视一下,点击时触发的事情本身设置就好。
完成后的效果图: