精华内容
参与话题
问答
  • Java GUI

    千次阅读 2018-06-23 00:35:13
    awt包:GUI元素由java类来实现核心类:Component(抽象类):代表图形元素Container: 容纳其他图形元素的容器一般Component对象需要放在Container中才可以显示布局管理器:通过setLayout方法设置不同的布局管理器:...

    awt包:

    GUI元素由java类来实现

    核心类:

    Component(抽象类):代表图形元素

    Container: 容纳其他图形元素的容器

    一般Component对象需要放在Container中才可以显示



    布局管理器:

    通过setLayout方法设置不同的布局管理器:

    布局管理器可以互相嵌套


    事件监听:

    针对不同事件需要实现不同接口


    import java.awt.*;
    import java.awt.event.*;
    
    public class TestEvent {
        public static void main(String[] args) {
            Frame f = new Frame("GUI");
            Button b = new Button("Button");
    
            Monitor m = new Monitor();
            b.addActionListener(m);\
            //对按钮元素进行监听
            
            f.add(b);
            f.pack();
            f.setVisible(true);
            
        }
    }
    
    class Monitor implements ActionListener {
        //监听器实现接口
        public void actionPerformed(ActionEvent e) {
            //将事件信息封装为对象,传入接口方法
            System.out.println("Hello");
        }
    }
    

    TextField类:文本输入框

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestText {
        public static void main(String[] args) {
            new MyFrame();
        }
    }
    
    class MyFrame extends Frame {
        MyFrame() {
            TextField tf = new TextField();
            add(tf);
            tf.addActionListener(new TFActionListener());
            //tf.setEchoChar('*');
            //设置回显字符
            pack();
            setVisible(true);
        }
    }
    
    class TFActionListener implements ActionListener {
        public void actionPerformed (ActionEvent e) {
            TextField tf = (TextField) e.getSource();
            //读取事件信息,返回事件源对象,默认为Object,需要强制转换类型
            System.out.println(tf.getText());
            //读取事件源对象内容
            tf.setText("");
            //清空文本框
        }
    }


    持有对象引用:

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestPlus {
        public static void main(String[] args){
            new PlusFrame().launchFrame();
        }
    }
    
    class PlusFrame extends Frame {
        TextField num1, num2, num3;
        
        public void launchFrame() {
            //运行frame
    
            num1 = new TextField(10);
            num2 = new TextField(10);
            num3 = new TextField(15);
    
            Label plus = new Label("+");
            Button equal = new Button("=");
            setLayout(new FlowLayout());
            equal.addActionListener(new Monitor(this));
            
            add(num1);
            add(plus);
            add(num2);
            add(equal);
            add(num3);
    
            pack();
            setVisible(true);
        }
    }
    
    class Monitor implements ActionListener {
    
        //方法1
        /*TextField n1, n2, n3;
        
        public Monitor(TextField n1, TextField n2, TextField n3) {
            this.n1 = n1;
            this.n2 = n2;
            this.n3 = n3;
        }
        */
    
        //方法2,更好
        PlusFrame pf = null;
        //持有对象引用,不需要引用对象内部的所有小对象
        
        public Monitor(PlusFrame pf) {
            this.pf = pf;
        }
        
        public void actionPerformed(ActionEvent e) {
            int n1 = Integer.parseInt(pf.num1.getText());
            int n2 = Integer.parseInt(pf.num2.getText());
            pf.num3.setText("" + (n1 + n2));
        }
    }

    内部类:

    好处:可以方便的访问包装类的变量和方法,避免内部类被其他无关类访问

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestInnerClass {
        public static void main(String[] args){
            new PlusFrame().launchFrame();
        }
    }
    
    class PlusFrame extends Frame {
        TextField num1, num2, num3;
        
        public void launchFrame() {
    
            num1 = new TextField(10);
            num2 = new TextField(10);
            num3 = new TextField(15);
    
            Label plus = new Label("+");
            Button equal = new Button("=");
            setLayout(new FlowLayout());
            equal.addActionListener(new Monitor());
            
            add(num1);
            add(plus);
            add(num2);
            add(equal);
            add(num3);
    
            pack();
            setVisible(true);
        }
    
        //方法3
        class Monitor implements ActionListener {
            //内部类
            //可以访问外部的包装类
            public void actionPerformed(ActionEvent e) {
                int n1 = Integer.parseInt(num1.getText());
                int n2 = Integer.parseInt(num2.getText());
                num3.setText("" + (n1 + n2));
            }
        }
    }


    Graphics类:

    import java.awt.*;
    
    public class TestPaint {
        public static void main(String[] args) {
            new PaintFrame().launchFrame();
        }
    }
    
    class PaintFrame extends Frame {
        public void launchFrame() {
            setBounds(200, 200, 400, 400);
            setVisible(true);
        }
    
        public void paint(Graphics g) {
            //每次frame需要被重画时,paint方法会被自动调用
            //调用Graphics g这个画笔
            Color c = g.getColor();
            g.setColor(Color.red);
            g.fillOval(50, 50, 30, 30);
            g.setColor(Color.green);
            g.fillRect(80, 80, 40, 40);
            g.setColor(c);
        }
    }

    鼠标适配器:

    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    
    public class TestMouse {
        public static void main(String[] args) {
            new MyFrame("TIRED");
        }
    }
    
    class MyFrame extends Frame {
        ArrayList<Point> point = null;
        MyFrame(String s) {
            super(s);
            point = new ArrayList<Point>();
            setLayout(null);
            setBounds(300, 300, 400, 400);
            this.setBackground(Color.white);
            setVisible(true);
            this.addMouseListener(new Monitor());
            //鼠标进行监听
        }
    
        public void paint(Graphics g) {
            Iterator<Point> i = point.iterator();
            while(i.hasNext()) {
                Point p = (Point) i.next();
                g.setColor(Color.black);
                g.fillOval(p.x, p.y, 5, 5);
            }
        }
    
        public void addPoint(Point p) {
            point.add(p);
        }
    }
    
    class Monitor extends MouseAdapter {
        //不实现MouseListener是为了避免实现所有方法
        public void mousePressed(MouseEvent e) {
            MyFrame f = (MyFrame) e.getSource();
            //拿到事件源对象
            f.addPoint(new Point(e.getX(), e.getY()));
            f.repaint();
            //对当前frame进行重画,保证每次点击后都立即重画
            //内部先调用update,再调用paint
            
        }
    }
    

    Window事件:

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestClose {
        public static void main(String[] args) {
            new CloseFrame("Close");
        }
    
    }
    
    class CloseFrame extends Frame {
        CloseFrame(String s) {
            super(s);
            setLayout(null);
            setBounds(300, 300, 400, 400);
            setVisible(true);
            //this.addWindowListener(new Monitor());
    
            //匿名类,new父类对象(实现了方法)
            this.addWindowListener(new WindowAdapter() {
                    public void windowClosing(WindowEvent e) {
                        setVisible(false);
                        System.exit(0);
                    }
                });
        }
        
        //内部类
        /*
        class Monitor extends WindowAdapter {
            public void windowClosing(WindowEvent e) {
                setVisible(false);
                System.exit(0);
            }
        }
        */
    }
    

    Key事件:

    import java.awt.*;
    import java.awt.event.*;
    
    public class TestKey {
        public static void main(String[] args) {
            new KeyFrame().launchFrame();
        }
    }
    
    class KeyFrame extends Frame {
        public void launchFrame() {
            setSize(200, 200);
            setLocation(300, 300);
            setVisible(true);
            this.addKeyListener(new Monitor());
        }
    
        class Monitor extends KeyAdapter {
            public void keyPressed(KeyEvent e) {
                int keyCode = e.getKeyCode();
                if(keyCode == KeyEvent.VK_UP) {
                    System.out.println("UP");
                }
                if(keyCode == KeyEvent.VK_DOWN) {
                    System.out.println("DOWN");
                }
                if(keyCode == KeyEvent.VK_LEFT) {
                    System.out.println("LEFT");
                }
                if(keyCode == KeyEvent.VK_RIGHT) {
                    System.out.println("RIGHT");
                }
            }
        }
    }
    

    展开全文
  • JAVA GUI

    2018-05-29 19:36:49
    1.java输入 String firstnumber=JOptionPane.showInputDialog("Enter first inter","hello"); //上面不可是int 类型,如需使用Int ,用Integer.parseInt转化 JOptionPane.showMessageDialog...

    1.java输入

    	String firstnumber=JOptionPane.showInputDialog("Enter first inter","hello");
    	//上面不可是int 类型,如需使用Int ,用Integer.parseInt转化
    	JOptionPane.showMessageDialog(null,firstnumber );

    Swing以AWT(geavtweught component,不同平台表现不同)为基础扩充,AWT运行更快

    3. JFrame(框架)提供窗口的基础功能,是java.awt.window的subclass

    4.setToolTipText 用来设置鼠标在Label上停留时显示提示信息的。

    5.载入本地图片(图片与该class放在同一目录)

    所以正确的调用是(不要加Project1)

    ImageIcon icon = new ImageIcon(“src/images/1.jpg”);

     
    FlowLayout布局使用方法(有点复杂)

    控件.setHorizontalTextPosition 水平()

    控件.setVgap。。。。。。。。  竖直

    找到一个待看

    首先清楚一个概念:Frame是顶级容器,Panel不是顶级容器(可以镶嵌在Frame里),然后可以在Panel添加lanel组件
    (Frame也可以直接添加组件,但是一般不这么做)

    8. 使用JButton数组 ,需要用for 循环初始化
       private  JButton  keyJButton[] = JButton [15];不可以,只是在创建对象

      



    展开全文
  • JavaGUI

    千次阅读 2016-11-23 21:15:34
    java中,基于GUI的程序需要使用javax.swing包和java.awt包中的类才能被执行 SWT:1.awt:容器,组件,字体,颜色  2.swing:容器,组件(名字为J + awt的名字) 2.  事件处理 1.  委托事件模型 1. 事件原...

    1.  简介

    java中,基于GUI的程序需要使用javax.swing包和java.awt包中的类才能被执行

    SWT1.awt:容器,组件,字体,颜色         2.swing:容器,组件(名字为J + awt的名字)

    2.  事件处理

    1.  托事件模型

    1.  件原对象(不做任何行为),一个事件源对象可以绑定多个监听器(每个监听器监听不同的事件)

    2.  监听者(绑定监听原对象),一个监听器可以监听多个事件源(***Listener   全部为接口)

    EventListener父接口       ActionListener点击行为

    3.  操作人员

    2.  事件分类

    消息框     JOprionPane.showMessageDialog(出现的位置, “提示”);

    输入框     JOprionPane.showInputDialog(出现的位置, “提示”);

    返回String类型,没有输入返回空串,点取消返回空null

    确定框     JOptionPane.ShowConfirmDialog(出现的位置, “提示”);

               返回int类型,《是》返回0,《否》返回1,《取消》返回2

     

    3.  事件代码实现————匿名内部类

    l  步骤:

    n   先书写事件源对象

    n   根据要处理的事件类型选择相应的事件监听器

    n   把功能实现在该监听器的特殊方法里面

    n   绑定监听器对象与事件源对象

    l  监听器实现方式

    n   1.单独书写一个监听器类,实现监听器接口

    既可以为每个事件源单独书写监听器类,也可以让有相似功能的事件源共用一个监听器

    如果处理时需要用到来自于界面的其他组件或容器,要传参(提供get/set,提供有参构造)。

    n   2.让容器类既充当容器又充当监听器,无需书写单独的类

    无法为每个事件源单独书写监听器类,只能让不同的事件源共用一个监听器

    如果操作当前容器身上的组件或子容器,可以不传参

    n   3.匿名内部类

    1.   为每个事件源书写单独的监听器,本容器的组件或子容器不用传参

    l  适配器其实就是实现了监听器接口的类,它将接口中的抽象方法全部空实现,这样我们在使用时只需直接声明适配器的内部类,重写相应的方法,其他方法无需在管

     

    3.  布局管理器

    Null 不使用任何现成的布局管理器,所有的组件/子容器的位置大小。全部由程序员set

    1.   边界

    BorderLayout

    n   窗体内容面板自带

    n   把整个容器划分为5个部分(东南西北中,南北要贯通,中间最大)

    n   中间最大不仅仅指位置最大=,而且权利也最大(周边不存在,中间要去占领周边;中间不存在,周边不能占领中间)

    n   其作用:把一个大的界面划分成多个小的界面,主要是放容器的

    2.  

    FlowFrame

    n   JPanel默认的布局管理器

    n   根据从上往下,从左往右,从中间开始的方式,依次放入组件

    n   组件的位置会根据容器的大小改变而改变,因此不适用于大面积容器,最好是单行容器

    n   组件的大小是根据组件的内容来决定的

    n   inputText.setColumns(15);在流布局下,设置文本框的宽度

    3.   网格

    GridFrame

    n   将容器按照行列,划分为等大的几个部分

    n   当放入的组件或子容器的个数不匹配时优先满足行,列是可以变化的

    n   主要用于等分一个大容器为多个等大的小容器

    4.  卡片

    CardLayout

    n   在该容器上贴皮

    u  1.得到被设置为要翻页的容器的卡片布局

    u  2.调用该卡片布局的方法,完成操作

    展开全文
  • java gui

    2015-02-01 14:25:36
    用来编写gui程序。它是java早期的产物,后被swing替代。 swing是在awt基础上提供的新的界面工具包,它比awt运行速度快,界面也更加漂亮。 但是,事件的响应等工作还是要用awt来完成。 例子:

    awt,Abstract Window Toolkit,抽象窗口工具包。用来编写gui程序。它是java早期的产物,后被swing替代。

    swing是在awt基础上提供的新的界面工具包,它比awt运行速度快,界面也更加漂亮。 但是,事件的响应等工作还是要用awt来完成。

    例子:

    展开全文
  • java GUI例子

    2019-04-24 21:41:44
    这是关于java GUI 简单例子,刚学的看看就行了,很简单的小例子
  • java swing开发学生选课系统 数据库使用MySQL 该系统主要包括学生和管理员两个用户角色 以学生角色登陆进去 学生可以查看自己的选修课情况 修改自己的个人信息 以管理员的角色登陆进去,管理员可以查看选修课的选修...
  • java GUI

    2013-10-22 15:10:41
    61.178.172.6-netcai-javagui-cd-rom.htm
  • 主要为大家详细介绍了Java GUI实现学生成绩管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java GUI实用小工具集 Common Gui Tools ,Common Gui Tools是用java编写,GUI界面的实用小工具集,1.2版有16个小工具:...
  • 主要为大家详细介绍了java GUI实现学生图书管理简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Java GUI 鼠标事件

    万次阅读 多人点赞 2019-08-13 18:05:43
    import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class Java鼠标事件 { public static void main...
  • Java GUI 窗体事件

    万次阅读 多人点赞 2019-08-13 17:43:55
    import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class Java窗体事件 { public static void main(String[] args) { Frame f = new Frame("WindowEvent...
  • Java GUI 综合应用实例

    万次阅读 2020-05-01 19:17:27
    Java GUI 综合应用实例 其实是一次Java上机实验,题目包含:按钮,文本框、文本域、复选框、单选按钮组、面板、弹窗JDialog,列表JList,下拉列表JComboBox,滚动条JScrollPane, 以及以上所有组件对应的常用监听器...
  • Java GUI 键盘事件

    万次阅读 多人点赞 2019-08-13 19:29:56
    import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; public class Java键盘事件 { public static void main...
  • 本系统采用JAVA GUI,即Java Swing包开发,利用Java Socket进行客户端和服务器进行通信系统界面美观,数据库完整,由于项目进展时间,没有为数据库表间添加关系(外键,触发器等),代码仅供参考,请勿用于他途。
  • GUI初识 GUI是什么 GUI:全称是Graphical User Interface,意为图形用户界面(又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 GUI的核心技术:Swing 和 AWT Swing:是一个用于开发Java应用程序用户...
  • JAVA GUI 界面优化

    2020-07-23 12:43:16
    很多开发者还是喜欢Win7界面的GUI,添加下方代码即可 try{ UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e){}
  • JavaGUI图片浏览器

    2020-07-10 16:07:43
    源代码下载地址 介绍 一款使用Java开发的图片浏览器 功能 放大、缩小、下一张、上一张、重置图片、选择打开图片等功能 展示
  • JAVA GUI聊天窗口

    2020-07-03 14:34:27
    利用JAVA GUI制作用户聊天界面 import java.awt.; import java.awt.event.; import javax.swing.*; public class Example18 extends JFrame{ JButton sendBt; JTextField inputFiled; JTextArea chatContent; ...
  • JAVA GUI 學生管理

    2018-10-29 16:18:49
    Java GUI做的一个简单的學生管理系统,可鏈接數據庫,主要代碼。
  • javaGUI源代码.zip

    2019-08-20 16:17:37
    简单的java小程序,GUI界面的,连接了mysql数据库,有简单的增删改查功能,我连接的数据库是mysql5.5,注意mysql的格式是utf8,不然不能输入文字
  • Java GUI事件监听

    2020-03-11 20:48:12
    1.Monitor()需要implements ActionListener后重写,然后在api中复制actionPerformed方法,进行改写 2.监听器是加在Button对象上,而Button对象是添加Frame对象上 3.监听步骤为:(1)事件源对象(2)当某件事件发生...
  • Java GUI 编程概念

    2020-03-16 03:00:19
    本文介绍了 JavaGUI 编程概念的相关内容。。。
  • JAVA gui初探

    2018-11-24 21:32:11
    今天,终于完成了javagui一单元的学习,虽说只是简单的了解,但是也揭开了gui神秘的面纱啊! 首先gui编程的基本思路是: 创建窗体(如JFRAME),往窗体里添加其他container或者component,完成一个基本的布局...

空空如也

1 2 3 4 5 ... 20
收藏数 20,214
精华内容 8,085
关键字:

javagui

java 订阅