滴水穿石-10GUI
Posted 逍遥小天狼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滴水穿石-10GUI相关的知识,希望对你有一定的参考价值。
GUI 图形用户界面
1 Frame 窗体
package d10; //第一导入包 import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; public class Frame1 { public static void main(String[] args) { // 创建窗体并命名 Frame f = new Frame("HelloWorld"); // 设置窗体大小 //f.setSize(400, 300); // 设置窗体位置 //f.setLocation(500, 300); //方法二 setBounds(x, y, width, height); f.setBounds(400,300, 500, 300); f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } }); //显示窗体 f.setVisible(true); } }
package d10; import java.awt.Button; import java.awt.FlowLayout; //第一导入包 import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Frame1 { public static void main(String[] args) { //01 创建窗体并命名 Frame f = new Frame("HelloWorld"); f.setBounds(400,300, 500, 300); //02-01创建 按钮 对象 Button bu = new Button("点我"); //02-02 按钮点击事件的监听 bu.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("再点一个试试!"); } }); //01-02 设置窗体布局方式 f.setLayout(new FlowLayout()); //01-03 将按钮添加到Frame中 f.add(bu); //01-04 窗体关闭事件的监听 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } }); //显示窗体 f.setVisible(true); } }
package d10; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextArea; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Frame2 { public static void main(String[] args) { //01-01 创建窗体对象那个 Frame f = new Frame(); //01-02 设置窗体位置 f.setBounds(500, 300, 400, 300); //01-03 设置窗体布局方式 f.setLayout(new FlowLayout()); //02-01 创建元素 TextField tf = new TextField(20);//02-01-01 创建文本框 Button bu = new Button("数据转移");//02-01-02 创建按钮 TextArea ta = new TextArea(10,20);//02-01-03 创建文本域 //02-02 将元素添加到Frame中 f.add(tf); f.add(bu); f.add(ta); //02-03 为按钮添加监听事件 bu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //02-03-01 获取文本框的值 String tf_str = tf.getText().trim(); //02-03-02 清空文本框的值 tf.setText(""); //02-03-03 追加到文本域中 ta.append(tf_str+"\\r\\n"); //02-03-04 文本框获取焦点 tf.requestFocus(); } }); //01-04 添加窗体关闭 监听事件 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //01-05 设置窗体显示 f.setVisible(true); } }
package d10; import java.awt.Button; import java.awt.Color; import java.awt.FlowLayout; //第一导入包 import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Frame3 { public static void main(String[] args) { //01 创建窗体并命名 Frame f = new Frame("HelloWorld"); f.setBounds(400,300, 500, 300); //02-01创建 按钮 对象 Button bured = new Button("红"); bured.setBackground(Color.red); Button bugreen = new Button("绿"); bugreen.setBackground(Color.green); Button bublue = new Button("蓝"); bublue.setBackground(Color.blue); //02-02 鼠标事件的监听 bured.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { f.setBackground(Color.red); } @Override public void mouseExited(MouseEvent e) { f.setBackground(Color.white); } }); bugreen.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { f.setBackground(Color.green); } @Override public void mouseExited(MouseEvent e) { f.setBackground(Color.white); } }); bublue.addMouseListener(new MouseAdapter() { @Override public void mouseEntered(MouseEvent e) { f.setBackground(Color.blue); } @Override public void mouseExited(MouseEvent e) { f.setBackground(Color.white); } }); //01-02 设置窗体布局方式 f.setLayout(new FlowLayout()); //01-03 将按钮添加到Frame中 f.add(bured);f.add(bugreen);f.add(bublue); //01-04 窗体关闭事件的监听 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } }); //显示窗体 f.setVisible(true); } }
package d10; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.Label; import java.awt.TextField; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Frame4 { public static void main(String[] args) { //01-01 创建窗体对象那个 Frame f = new Frame(); //01-02 设置窗体位置 f.setBounds(500, 300, 400, 300); //01-03 设置窗体布局方式 f.setLayout(new FlowLayout()); //02-01 创建元素 Label lb = new Label("只能输入数字"); TextField tf = new TextField(20);//02-01-01 创建文本框 //02-02 将元素添加到Frame中 f.add(lb); f.add(tf); //02-03 为文本框添加键盘监听事件 tf.addKeyListener(new KeyAdapter() { //键盘释放的时候做判断 public void keyPressed(KeyEvent e) { char ch = e.getKeyChar(); if (!(ch>=\'0\'&&ch<=\'9\')) { e.consume(); } } }); //01-04 添加窗体关闭 监听事件 f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); //01-05 设置窗体显示 f.setVisible(true); } }
package d10; import java.awt.Button; import java.awt.FlowLayout; //第一导入包 import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Frame5 { public static void main(String[] args) { //01 创建窗体并命名 Frame f = new Frame("HelloWorld"); f.setBounds(400,300, 500, 300); //02-01创建 菜单 对象 MenuBar mb = new MenuBar();//02-01创建菜单条 Menu mu = new Menu("文件");//02-02 创建菜单 MenuItem mi = new MenuItem("退出系统");//02-03 创建菜单项 //02-02放置 菜单 对象 mu.add(mi); mb.add(mu); //02-03 菜单项点击事件的监听 mi.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); //01-02 设置窗体布局方式 f.setLayout(new FlowLayout()); //01-03 将菜单条添加到Frame中 f.setMenuBar(mb); //01-04 窗体关闭事件的监听 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } }); //显示窗体 f.setVisible(true); } }
package d10; import java.awt.FlowLayout; //第一导入包 import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException; public class Frame6 { public static void main(String[] args) { //01 创建窗体并命名 Frame f = new Frame("多级菜单"); final String fTitle = f.getTitle(); f.setBounds(400,300, 500, 300); //02-01创建 菜单 对象 MenuBar mb = new MenuBar();//02-01-01创建菜单条 Menu mu = new Menu("文件");//02-01-02 创建一级菜单 Menu mu2 = new Menu("设置标题");//02-01-03 创建二级菜单 MenuItem mi2_01 = new MenuItem("好好学习");//02-01-03-01 创建菜单项 MenuItem mi2_02 = new MenuItem("天天向上");//02-01-03-02 创建菜单项 MenuItem mi2_03 = new MenuItem("恢复标题");//02-01-03-03 创建菜单项 MenuItem mi_02 = new MenuItem("打开记事本");//02-01-02-02 创建菜单项 MenuItem mi_03 = new MenuItem("退出系统");//02-01-02-03 创建菜单项 //02-02放置 菜单 对象 mu.add(mu2); mu2.add(mi2_01); mu2.add(mi2_02); mu2.add(mi2_03); mu.add(mi_02); mu.add(mi_03); mb.add(mu); //02-03 菜单项点击事件的监听 mi2_01.addActionListener(new ActionListener() { //好好学习 public void actionPerformed(ActionEvent e) { f.setTitle(mi2_01.getLabel()); } }); mi2_02.addActionListener(new ActionListener() { //天天向上 public void actionPerformed(ActionEvent e) { f.setTitle(mi2_02.getLabel()); } }); mi2_03.addActionListener(new ActionListener() { //恢复标题 public void actionPerformed(ActionEvent e) { f.setTitle(fTitle); } }); mi_02.addActionListener(new ActionListener() { //打开记事本 public void actionPerformed(ActionEvent e) { Runtime rt = Runtime.getRuntime(); try { rt.exec("notepad"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); mi_03.addActionListener(new ActionListener() { //退出系统 public void actionPerformed(ActionEvent e) { System.exit(0); } }); //01-02 设置窗体布局方式 f.setLayout(new FlowLayout()); //01-03 将菜单条添加到Frame中 f.setMenuBar(mb); //01-04 窗体关闭事件的监听 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub System.exit(0); } }); //显示窗体 f.setVisible(true); } }
2:NetBeans 的使用
2.1 小型计算器
public CalculateFrame() { initComponents(); init(); } private void init() { //设置标题 this.setTitle("小型计算器"); }
private void btnCalculateActionPerformed(java.awt.event.ActionEvent evt) { //获取第一个操作数的值 String sFirst = this.txtFirst.getText().trim(); //获取第二个操作数的值 String sSecond = this.txtSecond.getText().trim(); //获取运算符的值 String sOperator = this.cbOperator.getSelectedItem().toString().trim(); //通过正则表达式 判断输入的内容是否合法 String regex = "\\\\d+"; if (!sFirst.matches(regex)) { //弹框提示 JOptionPane.showMessageDialog(this, this.lblFirst.getText() + "格式不正确"); this.txtFirst.setText(""); this.txtFirst.requestFocus(); return; } if (!sSecond.matches(regex)) { //弹框提示 JOptionPane.showMessageDialog(this, this.lblSecond.getText() + "格式不正确"); this.txtSecond.setText(""); this.txtSecond.requestFocus(); return; } int iResult = 0; int iFirst = Integer.parseInt(sFirst); int iSecond = Integer.parseInt(sSecond); switch (sOperator) { case "+": iResult = iFirst + iSecond; break; case "-": iResult = iFirst - iSecond; break; case "*": iResult = iFirst * iSecond; break; case "/": iResult = iFirst / iSecond; break; } this.txtResult.setText(String.valueOf(iResult)); }
2.1.3 修改窗体的图标
添加两个包,用于放置图片和设置UI操作
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package D10.Util; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JFrame; /** *专门做界面效果的类 * @author Administrator */ public class UiUtil { private UiUtil(){} public static void setFrameImage(JFrame jf){ //01 获取工具类对象 Toolkit tk = Toolkit.getDefaultToolkit(); //根据路径获取图片 Image i = tk.getImage("src\\\\D10\\\\Resource\\\\jjcc.jpg"); jf.setIconImage(i); } }
private void init() { //设置标题 this.setTitle("小型计算器"); //设置窗体图标 UiUtil.setFrameImage(this); }
public static void setFrameCenter(JFrame jf) { //01 获取工具类对象 Toolkit tk = Toolkit.getDefaultToolkit(); //02 获取屏幕的宽和高 Dimension d = tk.getScreenSize(); double srceenWidth = d.getWidth(); double srceenHeight = d.getHeight(); //03 获取窗体的宽和高 int frameWidth = jf.getWidth(); int frameHeight = jf.getHeight(); //04 计算新的位置 int width = (int) (srceenWidth - frameWidth) / 2; int height = (int) (srceenHeight - frameHeight) / 2; //05 设置窗体坐标 jf.setLocation(width, height); }
private void init() { //设置标题 this.setTitle("小型计算器"); //设置窗体图标 UiUtil.setFrameImage(this); //设置窗体居中 UiUtil.setFrameCenter(this); }
2.1.5 修改皮肤
2.1.5.1 引用jar包
2.1.5.2 修改main方法
public static void main(String args[]) { /*<以上是关于滴水穿石-10GUI的主要内容,如果未能解决你的问题,请参考以下文章