java 图形界面

1、创建一个窗口框架

/**
 * java 用户界面框架
 * 2016/5/10
 */
package org.windows;

import javax.swing.*;
public class MyJFrame {

    public static void main(String[] args) {
        JFrame frame = new JFrame("MyJFrame");        //创建一个有标题的框架
        frame.setSize(400,300);        //设置宽度
        frame.setLocationRelativeTo(null);        //窗口居中显示
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //窗口关闭时结束程序
        frame.setVisible(true);                    //这句之后窗口才会显示

    }

}

2、向窗口中添加一个按钮

/**
 * java 用户界面框架
 * 2016/5/10
 */
package org.windows;

import javax.swing.*;
public class MyJFrame {

    public static void main(String[] args) {
        JFrame frame = new JFrame("MyJFrame");        //创建一个有标题的框架

        JButton jbtOK = new JButton("OK");        //新建一个按钮
        frame.add(jbtOK);                        //将按钮添加到窗口中

        frame.setSize(400,300);        //设置宽度
        frame.setLocationRelativeTo(null);        //窗口居中显示
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //窗口关闭时结束程序
        frame.setVisible(true);                    //这句之后窗口才会显示

    }

}

3、布局管理器

  1) FlowLayout  :按照组件的添加顺序从左到右排列在容器中,当放满一行就开始新的一行

    向一个窗口添加3个标签和文本域

    

 1 /**
 2  * java 布局管理器 FlowLayout
 3  * 2016/5/10
 4  **/
 5
 6 package org.windows;
 7
 8 import javax.swing.*;
 9
10 import java.awt.FlowLayout;
11
12 public class MyFlowLayout extends JFrame{
13     public MyFlowLayout(){
14         setLayout(new FlowLayout(FlowLayout.RIGHT,10,20));        //设置右靠齐
15
16         add(new JLabel("First Name"));            //添加标签
17         add(new JTextField(8));                    //添加文本域,长度为8
18         add(new JLabel("MI"));
19         add(new JTextField(1));
20         add(new JLabel("Last Name"));
21         add(new JTextField(8));
22     }
23     public static void main(String[] args) {
24         MyFlowLayout frame = new MyFlowLayout();
25         frame.setTitle("MyFlowLayout");
26         frame.setSize(250,200);
27         frame.setLocationRelativeTo(null);
28         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
29         frame.setVisible(true);
30
31     }
32
33 }

2)GridLayout  :以 网格的形式管理组件,组件按照它们添加的顺序从左到右排列。

          向一个窗口添加3个标签和文本域

  

 1 /**
 2  * java b布局管理器 GridLayout
 3  * 2016/5/10
 4  **/
 5 package org.windows;
 6
 7 import javax.swing.*;
 8 import java.awt.GridLayout;
 9 public class MyGridLayout extends JFrame{
10     public MyGridLayout(){
11         setLayout(new GridLayout(3, 2, 25, 25));        //设置: 行数(rows):3  列数(columns):2  水平间隔(hgap):5  垂直间隔(vgap):5
12
13         add(new JLabel("First Name"));        //标签
14         add(new JTextField(8));                //文本域
15         add(new JLabel("MI"));
16         add(new JTextField(1));
17         add(new JLabel("Last Name"));
18         add(new JTextField(8));
19     }
20
21     public static void main(String[] args) {
22         MyGridLayout  frame = new MyGridLayout();
23         frame.setSize(200,125);
24         frame.setLocationRelativeTo(null);
25         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
26         frame.setVisible(true);
27     }
28 }

3)BorderLayout: BorderLayout管理器将容器分为5个区域,东区,南区,西区,,北区,中央。

  

 1 /**
 2  * java 布局管理器 BorderLayout
 3  * 2016/5/10
 4  **/
 5 package org.windows;
 6
 7 import java.awt.BorderLayout;
 8 import javax.swing.*;
 9
10 public class MyBorderLayout extends JFrame {
11     public MyBorderLayout(){
12         setLayout(new BorderLayout(5,10));
13
14         add(new JButton("East"),BorderLayout.EAST);
15         add(new JButton("South"),BorderLayout.SOUTH);
16         add(new JButton("West"),BorderLayout.WEST);
17         add(new JButton("North"),BorderLayout.NORTH);
18         add(new JButton("Center"),BorderLayout.CENTER);
19     }
20     public static void main(String[] args) {
21         MyBorderLayout frame = new MyBorderLayout();
22
23         frame.setTitle("MyBorderLayout");
24         frame.setSize(300,200);
25         frame.setLocationRelativeTo(null);
26         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
27         frame.setVisible(true);
28
29     }
30
31 }

4)综合布局实验

 1 /**
 2  * java  布局管理器,小试牛刀
 3  * 2016/5/10
 4  **/
 5 package org.windows;
 6
 7 import javax.swing.*;
 8 import java.awt.*;
 9 public class TestPanels extends JFrame {
10     public TestPanels(){
11         JPanel p1 = new JPanel();
12         p1.setLayout(new GridLayout(4,3));          //网格布局管理器
13         for(int i = 1; i <= 9; i++){
14             p1.add(new JButton(""+i));
15         }
16         p1.add(new JButton(""+0));
17         p1.add(new JButton("Start"));
18         p1.add(new JButton("Stop"));
19
20         JPanel p2 = new JPanel(new BorderLayout());
21         p2.add(new JTextField("Time to be displany here!!"),BorderLayout.NORTH);            //5个区域的布局管理器
22         p2.add(p1,BorderLayout.CENTER);
23
24         add(p2,BorderLayout.EAST);
25         add(new JButton("Food to be placed here"),BorderLayout.CENTER);
26
27
28     }
29     public static void main(String[] args) {
30         TestPanels frame = new TestPanels();
31         frame.setTitle("TestPanels");
32         frame.setSize(400,250);
33         frame.setLocationRelativeTo(null);
34         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
35         frame.setVisible(true);
36     }
37 }

运行效果:

4、Swing GUI  属性的使用

 1 /**
 2  * java Swing GUI 组件的公共特性
 3  * 2016/5/10
 4  **/
 5 package org.windows;
 6
 7 import javax.swing.*;
 8 import javax.swing.border.*;
 9 import java.awt.*;
10
11 public class TestSwingAttribute extends JFrame{
12     public TestSwingAttribute(){
13         JPanel p1 = new JPanel(new FlowLayout(FlowLayout.LEFT,2,2));
14         JButton jbtLeft = new JButton("Left");
15         JButton jbtCenter = new JButton("Center");
16         JButton jbtRight = new JButton("Right");
17         jbtLeft.setBackground(Color.WHITE);     //设置背景色为白色
18         jbtCenter.setForeground(Color.GREEN);       //设置前景色、
19         jbtRight.setToolTipText("This is the Right button");        //鼠标放在按钮上会显示提示文本
20         p1.add(jbtLeft);
21         p1.add(jbtCenter);
22         p1.add(jbtRight);
23         p1.setBorder(new TitledBorder("Three Buttons"));        //设置标题边界
24
25         Font largeFont  = new Font("TimesRoman",Font.BOLD,20);        //字体属性
26         Border lineBorder = new  LineBorder(Color.BLACK,2);            //设置线边界
27
28         JPanel p2 = new JPanel(new GridLayout(1, 2, 5, 5));
29         JLabel jlblRed = new JLabel("Red");
30         JLabel jlblOrange = new JLabel("Orange");
31         jlblRed.setForeground(Color.RED);        //设置背景色
32         jlblOrange.setForeground(Color.ORANGE);
33         jlblRed.setFont(largeFont);            //设置字体
34         jlblOrange.setFont(largeFont);
35         jlblRed.setBorder(lineBorder);        //设置线边界
36         jlblOrange.setBorder(lineBorder);
37         p2.add(jlblRed);
38         p2.add(jlblOrange);
39         p2.setBorder(new TitledBorder("Two Labels"));        //设置标题边界
40         setLayout(new GridLayout(2, 1, 5, 5));
41         add(p1);
42         add(p2);
43
44     }
45
46     public static void main(String[] args) {
47         JFrame frame = new TestSwingAttribute();
48         frame.setTitle("TestSwingAttribute");
49         frame.setSize(300,150);
50         frame.setLocationRelativeTo(null);
51         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
52         frame.setVisible(true);
53
54     }
55
56 }

运行效果:

时间: 2024-09-30 06:46:25

java 图形界面的相关文章

Java 图形界面开发--图文并茂建立学生管理系统

图形用户界面(Graphics User Interface,GUI)是用户与程序交互的窗口,比命令行的界面更加直观并且更好操作. 这是本人在学习java图形界面开发阶段一步一步实现的超级简易的学生管理系统.虽然说不入大神法眼,但这确实是费了自己不少心血.对于我这样的菜鸟来说,考虑不周到,一不小心就Exception,然后就是自己调呀调.在此分享出来希望对和我一样的菜鸟有帮助. 程序完整代码下载地址见: https://github.com/chaohuangtianjie994/The-Sys

多线程编程、Java I/O系统和Java图形界面编程

多线程编程: 一个正在运行的程序通常称为一个进程,每一个任务称为一个线程,中能够在一个程序内运行多线程的程序称为多线程程序. 线程与进程的区别:①每个进程都需要操作系统为其分配独立的内存空间: ②而同一个进程中的所有线程都在同一内存空间工作,这些线程可以共享同一块内存和系统资源. 线程的创建: 1)通过继承Thread类来创建线程: ①创建一个继承Thread类的类: ②在创建的Thread子类中重写run()方法,在方法中写入想要线程运行的代码: ③创建Thread子类的实例: ④通过调用该实

JAVA 图形界面swing 创建按钮、文本域

package org.rui.swin; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import org.rui.utils.SwingConsole; public class Button1 extends JFrame{ private JButton button1=new JButton("button1"), button2=new JButton(

Java图形界面编程

一:基本概念 AWT(Abstract Window Toolkit) 抽象窗口工具包,SUN 公司提供的用于图形界面编程(GUI)的类库.但是AWT得实现严重依赖于下层操作系统,所以导致组件AWT的外观取决于程序运行的平台.AWT的类和接口都定义在java.awt包中. Swing    Swing组件是实在AWT基础上开发的新型GUI组件,它是纯Java实现的轻量级(light-weight)组件,它不依赖任何特定平台,Swing组件在不同平台具有一致性的表现,但是Swing应用程序的界面外

【转】java图形界面设计(AWT)

[转自]http://blog.sina.com.cn/s/blog_616e189f0100ne1t.html 1.       基本的java Frame操作. Java的图形界面的类主要包括AWT和Swing.在AWT中图形元素的父类为Component. 继承关系如下:Component->Container->Window->Frame->JFrame.(注意:Swing对AWT进行了扩展). 下面给出一个简单的java图形程序: package com.guan.vis

Java 图形界面事件处理机制

Java语言提供了一系列的用户图形界面的组件,主要有两个包:java.awt,和 javax.swing. 其中,awt包是早期包,swing包是后期提供的用户界面包. swing包组件与awt包组件的区别在于:swing包组件 通常不依赖于 当前平台GUI功能. swing组件优势:1.跨平台,2.移植性强,3.swing扩展了awt包,组件更加丰富,使用更加方便. 事件处理机制: Java中使用委托事件模型来处理事件. 委托事件模型分为三个部分:事件源.事件对象.事件监听器. 事件源:指可以

Java图形界面实战案例——实现打字母游戏

实现打字母的游戏 这次这个案例可以说是头几次所讲的内容的一个技术汇总,主要是 运用了几大块的知识.我们先来定义一下案例的背景:在一个300*400的窗体上,有10个随机产生的字母下落,在键盘上敲击字母,若是敲对了就消掉,初始化的成绩为1000分,每次敲对一个字母就加上10分,如果在字母落到了屏幕的下方还没有敲对的话则判定为失败,就扣除100分. 我们还是老样子,先来进行步骤的划分 1.做满天星 2.把星星改成随机的10个字母 3.让字母落下,如果字母落出了屏幕就生成新的字母,并从屏幕的上方重新出

Java图形界面实战如何用键盘控制小球的移动以及接口的讲解

如何实现小球的移动 还是先走一个小球吧,已经做了很多次了,我们开始思考,如果用户按了键盘上的一个键,那么子啊整个计算机系统中,谁最先知道这件事情呢?这个大家都可以猜出来没错就是键盘,不过后面的事情,键盘到底是通知给谁了?我们干脆跳过中间环节吧,一定会到操作系统对吧?如果你的程序要能够响应用户的输入,是不是操作系统要将这件事情通知给你的程序?系统怎么能够把一件事情通知到你的程序呢?其实之前我们遇到过类似和系统打交道的事情无论是开始的main,还是重画的paint,抑或是线程的run都是和系统打交道

JAVA 图形界面开发基础详解

/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 [email protected]*/ 与C的win32一样,JAVA也有自己的图形界面开发,将在此篇博客中对基础部分进行讲解. 1.Java提供的图形界面类有哪些? Java提供了两套图形界面 (1)AWT组建(基础) AWT组件是jdk1.0的时候推出的图形界面类,它是位于java.awt包下的类.   当时在开发AWT组件时,采用的语言是C和C++,并且还调用了操作系统底层的绘图函数来实现AWT组件(我们看到的图形界面实际上画出来

Java图形界面开发—简易登录注册小程序

登录注册小代码,将学过的一些小知识融合在一起进行了使用,加深印象.本例中如果有注释不详细的地方,详见其它博客. Java程序操作数据库SQLserver详解 功能介绍:简单的登录注册系统,使用了数据库sqlserver.单例模式.正则表达式以及图形化开发等知识. 1.在登录界面,可以登录或者注册用户. 注册用户界面,按照正则表达式规定的格式要求来输入信息,若有误,则重新输入. 2.点击注册,首先连接SQLserver数据库,连接成功则会判断该用户名是否已经存在,若存在,则给出提示.反之则进行注册