学过java的人应该对java的图形化界面很是反感,特别是接触java不久的人。如果想和其他语言那样用鼠标拖拽,可以使用wondosbulider插件。但是用起来也不是那么方便。当然对于不乐意写代码的人来说真是太幸福了。

然而用代码去实现java的图形化界面并非那么麻烦。总结起来就是~

1.定义你需要使用的面板,按钮,文本,标签。

2.对这些实例化。  然后把按钮,文本,标签按照你想要的方法放到面板上。

3.把面板放在界面上。  如果界面简单的话,面板也是可以不使用的,面板可以方便管理一些按钮。

如何去简单的添加一些按钮那?

定义面板按钮~实例化面板按钮~将按钮添加到面板上。

package Swing;
import java.awt.FlowLayout;
import java.awt.Frame; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel; public class FrameDemo extends JFrame {
private JPanel jp,jp1; //声明面板,面板功能:可添加按钮文本等,方便管理界面。
private JButton b1; //声明 按钮
private JButton b2,b3;
public FrameDemo ()
{
super("测试窗口");
jp = new JPanel();
b1 = new JButton("按钮1");
b2 = new JButton("按钮2");//实例化 jp b1 b2
jp.add(b1);
jp.add(b2); this.add(jp); //按钮添加到面板,面板添加到界面。
this.setSize(300,200); //设定 窗口宽度300,高度200
this.setLocation(100,100); //设定窗口左上角坐标,窗口打开时的位置。以左上定点为0.0
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
FrameDemo frame = new FrameDemo();
frame.setVisible(true); } }

下面介绍几个布局,让你的界面更加美观

流布局~组建从左到右依次安排到面板上。也是默认布局

package Swing;
import java.awt.FlowLayout;
import java.awt.Frame; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel; public class FrameDemo extends JFrame {
private JPanel jp; //声明面板,面板功能:可添加按钮文本等,方便管理界面。
private JButton b1; //声明 按钮
private JButton b2,b3,b4;
public FrameDemo ()
{
super("测试窗口");
jp = new JPanel(); // 先对面板实例化,再对面板进行布局。 (左对齐,水平间距10,垂直间距15)可更改。
FlowLayout layout = new FlowLayout(FlowLayout.LEFT,10,25);
jp.setLayout(layout); b1 = new JButton("按钮1");
b2 = new JButton("按钮2");
b3 = new JButton("按钮3");
b4 = new JButton("按钮4");
jp.add(b1);
jp.add(b2);
jp.add(b3);
jp.add(b4);
this.add(jp); //按钮添加到面板,面板添加到界面
this.setSize(300,200); //设定 窗口宽度300,高度200
this.setLocation(100,100); //设定窗口左上角坐标,窗口打开时的位置。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
FrameDemo frame = new FrameDemo();
frame.setVisible(true); } }

执行结果

边界布局~有五个位置,东南西北中~默认为中

package Swing;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Frame; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel; public class FrameDemo extends JFrame {
private JPanel jp; //声明面板,面板功能:可添加按钮文本等,方便管理界面。
private JButton b1; //声明 按钮
private JButton b2,b3,b4;
public FrameDemo ()
{
super("测试窗口");
jp = new JPanel(); // 先对面板实例化,再对面板进行布局。 (左对齐,水平间距10,垂直间距15)可更改。
jp.setLayout(new BorderLayout()); b1 = new JButton("按钮1");
b2 = new JButton("按钮2");//实例化 jp b1 b2
b3 = new JButton("按钮3");
b4 = new JButton("按钮4");
jp.add(b1,BorderLayout.WEST);
jp.add(b2,BorderLayout.WEST); //按钮2将按钮1覆盖, 未设置按钮大小,按钮会的长度会是面板的长度。
jp.add(b3,BorderLayout.NORTH);
jp.add(b4,BorderLayout.SOUTH);
this.add(jp); //按钮添加到面板,面板添加到界面
this.setSize(500,500); //设定 窗口宽度500,高度500
this.setLocation(100,100); //设定窗口左上角坐标,窗口打开时的位置。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
FrameDemo frame = new FrameDemo();
frame.setVisible(true); } }

注意,按钮1被按钮2覆盖

网格布局以及卡片布局都是一样的设置步骤,唯一改变的是布局方式改变。只要依次添加组件,注意个组件的位置就可以做好自己要求的界面。

我最喜欢的布局~null空布局。根据自己的意愿在面板上随意添加,但是容易造成布局混乱。我将文本框,标签,和按钮放在null布局中,标签和文本框的放置方法和按钮相同。

package Swing;
import java.awt.FlowLayout;
import java.awt.Frame; import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField; public class FrameDemo extends JFrame {
private JPanel jp; //声明面板,面板功能:可添加按钮文本等,方便管理界面。
private JButton b1; //声明 按钮
private JButton b2,b3,b4;
private JLabel lname ,lpwd;
private JTextField txtname;
private JPasswordField txtpwd;
public FrameDemo ()
{
super("测试窗口");
jp = new JPanel();
jp.setLayout(null);
b1 = new JButton("登陆"); //对按钮创建添加
b2 = new JButton("取消"); b1.setBounds(60, 90, 60, 25);
b2.setBounds(125, 90, 60, 25);
jp.add(b1);
jp.add(b2); lname = new JLabel("用户名"); // 对标签创建添加
lpwd = new JLabel("密码");
txtname = new JTextField(20);
txtpwd = new JPasswordField(20);
txtpwd.setEchoChar('*'); lname.setBounds(30,30,60,25);
txtname.setBounds(95, 30, 120, 25);
lpwd.setBounds(30,60,60,25);
txtpwd.setBounds(95,60,120,25); jp.add(lname);
jp.add(txtname);
jp.add(lpwd);
jp.add(txtpwd); this.add(jp); //按钮添加到面板,面板添加到界'
this.setSize(250,170);
this.setLocation(300,300); //设定窗口左上角坐标,窗口打开时的位置。
this.setResizable(false);//窗口不可改变大小
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
FrameDemo frame = new FrameDemo();
frame.setVisible(true); } }

是否会自己按装一些组件了那?复选框的添加步骤也是一样的,但是要注意多设置些面板,用以管理各个复选框的标签等。

java Swing图形化界面的更多相关文章

  1. JAVA之旅(三十一)——JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件

    JAVA之旅(三十一)--JAVA的图形化界面,GUI布局,Frame,GUI事件监听机制,Action事件,鼠标事件 有段时间没有更新JAVA了,我们今天来说一下JAVA中的图形化界面,也就是GUI ...

  2. java的图形化界面 文本区JTextArea的程序例子

    package java1;     //使用时这个改成你的包名即可//文本区 JTextArea import javax.swing.*;import java.awt.*;import java ...

  3. Java四则运算——图形化界面

    一.前提 (1)作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 (2)GitHub地址:https://github ...

  4. 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结 GUI图形化界面   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流!   GUI(Graphical User Interface)图形化界 ...

  5. Java 图形化界面设计(GUI)实战练习(代码)

    关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例. 程序是为了方便用户使用的,Java引入图形化界面编程. 1.JFrame 是容器类 2.AWT 是抽象 ...

  6. 转:二十七、Java图形化界面设计——容器(JFrame)

    转:http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计——容器(JFrame) 程序是为了方便用户使用的, ...

  7. 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)

    摘自 http://blog.csdn.net/liujun13579/article/details/7773945 三十二.Java图形化界面设计--布局管理器之CardLayout(卡片布局) ...

  8. 二十七、Java图形化界面设计——容器(JFrame)

    摘自http://blog.csdn.net/liujun13579/article/details/7756729 二十七.Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的, ...

  9. 三十三、Java图形化界面设计——布局管理器之null布局(空布局)

    摘自http://blog.csdn.net/liujun13579/article/details/7774267 三十三.Java图形化界面设计--布局管理器之null布局(空布局) 一般容器都有 ...

随机推荐

  1. C# 第三方DLL,可以实现PDF转图片,支持32位系统、64位系统

    itextsharp.dll,是一个开源的在C#中用来生成PDF文档的库文件,不少C#爱好者用它制作出了PDF文档生成器.使用时只需在你的C#项目中添加引入此组件即可,使用方法网上有很多,自己查阅一下 ...

  2. Android开发之多媒体编程之加载大分辨率图片

    Android中图片占用内存的大小=图片的总像数*每个像数占用的大小. Android保存图片像素信息使用ARGB,意思是每个像素占用4个字节. 以分辨率为2400*3200的图片来说,加载到Andr ...

  3. 正确认识Android的内存管理机制,合理关闭进程 (一)

    随着大家收货后会有很多乐粉晒内存,为啦方便大家,在网上搜集了一些相关Andriod管理的相关机制合理管理内存,整理下发个贴. 首先要知道Android系统是基于Linux 2.6内核开发的开源操作系统 ...

  4. poi对wps excel的支持

    今天在使用poi解析xls文件的时候出现了如下异常 Exception in thread"main"java.lang.RuntimeException: Expected an ...

  5. c# equals与==的区别

    对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false.对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true.对于 string ...

  6. 解决angular的post请求后SpringMVC后台接收不到参数值问题的方法

    这是我后台SpringMVC控制器接收isform参数的方法,只是简单的打出它的值: @RequestMapping(method = RequestMethod.POST) @ResponseBod ...

  7. Zepto picLazyLoad Plugin,图片懒加载的Zepto插件

    嗯,学着国外人起名字Zepto picLazyLoad Plugin确实看起来高大上,其实js代码没几句,而且我每次写js都捉襟见肘,泪奔--- 图片懒加载有很多js插件,非常著名的属jQuery的L ...

  8. 【Java基础之容器】Iterator

    Iterator: ->所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象 ->Iterator对象称作迭代器,用以方便的实 ...

  9. MessagePack介绍

    在项目中,服务端的人需要我研究messagepcak 进行数据的传输,对messagePack的了解就是传输的数据格式都是二进制,可以节省用户的流量,就因为这点 数据格式小,服务端决定采用msgpac ...

  10. 环境监测小助手V1.1的Windows版

    环境监测小助手V1.1——可以实时查看空气质量和城市排名 一款跨平台空气质量监测软件 数据来源互联网,请联网使用. 暂不支持效果预览. 下载地址:http://files.cnblogs.com/py ...