`
Sunshineminyan
  • 浏览: 17994 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

Swing界面布局

 
阅读更多
基础知识
1.介绍Java的图形界面
1.awt (包名) java.awt

2.swing javax.swing
  为了不频繁的输入java.awt和javax.swing,可以实例化完对象后按shift+ctrl+o
  某些人也会用import java.awt.*;和import java.swing.* 但这样机器会在这两个包中逐个的寻找用到的方法,大大加重了其负担。
2.常用的组件
容器组件
JFrame( 默认的布局是边框布局)窗体类 顶级容器
                      JPanel(默认的布局是流式布局) 面板类 最灵活的容器
                      JMenuBar          菜单栏
JMenu 菜单项

           元素组件
JLabel 标签类
JButton 按钮类
JTextField 输入框类
JPasswordField 密码输入框类
JComboBox 下拉框类
JCheckBox 复选框类
JMenuItem 菜单

javax.swing包下的类。

3.常用的布局
BorderLayout     边框布局
FlowLayout       流式布局
GridLayout       网格布局
所有以Layout结尾的类都是布局类。
java.awt,javax.swing都有

4.界面实现
实现界面的步骤:
1.定义类,在类中定义主函数和初始化界面的方法.
2.在初始化界面的方法中,实例化一个JFrame窗体类的对象.
3.设置窗体对象的属性值
4.实例化布局对象并且设置窗体容器的布局方式.
5.实例化对象容器或者元素组件的对象,让后将对象添加到窗体上.
6.在主函数中实例化类的对象,然后调用初始化界面的方法

5.了解下不同布局的特性及用法
BorderLayout(边框布局)
        在下面的QQ登录界面和计算器界面中都有实例
           FlowLayout(流式布局)(默认对齐方式为居中)举例
GridLayout(网格布局)(每个网格大小一致)举例
6.根据组件的排列划分不同的区域
      先设定一个总的布局,布局之中再进行划分和布局
7.容器+布局实现界面
练习题(QQ登录界面,计算器界面)
我的代码:
QQ登录界面:
重点:
   1.界面布局:边框布局和流式布局。
   2.边框布局的使用方法
package swing界面;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
//定义登录界面类
public class enter {

/**
* 程序的主入口函数
*/
public static void main(String[] args) {
// 实例化一个enter类的对象
enter a=new enter();
//调用初始化界面的方法
a.initUI();
}
//定义一个初始化界面的方法
public void initUI(){
//实例化一个JFrame类的对象
JFrame j=new JFrame();
//设置对象的属性值
j.setSize(380,290);//设置对象的大小
j.setTitle("QQ登录");//设置对象的标题
//j.setLocation(180,180);//设置对象的位置
j.setLocationRelativeTo(null);
j.setDefaultCloseOperation(3);//设置窗体关闭时退出程序
j.setResizable(false);//设置禁止改变窗体的大小
//实例化一个背景图标对象
ImageIcon backgroundImage=new ImageIcon("pictures/2.jpg");
// 实例化一个标签对象用来显示背景图标
JLabel jlaBackground = new JLabel(backgroundImage);
// 设置JLabel组件的显示位置和大小
jlaBackground.setBounds(0, 0, backgroundImage.getIconWidth(),
backgroundImage.getIconHeight());
//将jlaBackground添加到JLayeredPane的底层
j.getLayeredPane().add(jlaBackground, new Integer(Integer.MIN_VALUE));
//获取ContentPane对象
JPanel contentPane = (JPanel)j.getContentPane();
//设置ContentPane对象为透明
contentPane.setOpaque(false);
/*
* JFrame默认的布局是边框布局
*/
BorderLayout f  = new BorderLayout();
//设置窗体的布局方式为边框布局
j.setLayout(f);
//创建北边的面板对象
JPanel northPane=new JPanel();
//设置面板为透明
northPane.setOpaque(false);
//设置面板的大小
northPane.setPreferredSize(new Dimension(0,110));
//将northPane添加到窗体的北面
j.add(northPane,BorderLayout.NORTH);

//设置一个西边面板
JPanel westPane=westPane();
//设置面板为透明
    westPane.setOpaque(false);
    //将西边面板添加到窗体
j.add(westPane,BorderLayout.WEST);

//创建一个中间的面板对象
JPanel centerPane=centerPane();
//设置面板为透明
    centerPane.setOpaque(false);
    //将中间面板添加到窗体
j.add(centerPane,BorderLayout.CENTER);

//设置一个南边面板
JPanel southPane=southPane();
    //将南边面板添加到窗体
j.add(southPane,BorderLayout.SOUTH);
j.setVisible(true);//设置窗体为可见
}

/**
* 创建西边面板
*/
public JPanel westPane(){
//实例化一个JPanel对象
JPanel panel=new JPanel();
panel.setPreferredSize(new Dimension(100,0));
//实例化一个流式布局对象,然后指定对齐方式
FlowLayout fl=new FlowLayout(FlowLayout.RIGHT);
//设置panel的布局方式为流式布局
panel.setLayout(fl);
//实例化一个ImageIcon图标对象
ImageIcon pic=new ImageIcon("pictures/1.jpg");
//实例化一个JLable(标签)的对象
JLabel jlaImage=new JLabel(pic);
//将图标添加到面板上
panel.add(jlaImage);
//返回面板对象
return panel;
}
/**
* 创建一个中间面板
*/
public JPanel centerPane(){
JPanel panel=new JPanel();
//实例化一个流式布局对象,然后指定对齐方式
FlowLayout fl=new FlowLayout(FlowLayout.LEFT);
panel.setLayout(fl);
//实例化一个下拉框的对象
JComboBox jco=new JComboBox();
jco.addItem("810556163");//添加选择内容
jco.setEditable(true);
jco.setPreferredSize(new Dimension(185,25));
//将组件添加到panel上
panel.add(jco);
//实例化一个标签对象
JLabel d=new JLabel("注册账号");
panel.add(d);
//实例化一个文本输入框的对象
JTextField n=new JTextField();
n.setPreferredSize(new Dimension(185,25));
panel.add(n);
//实例化一个JLabel对象
JLabel s=new JLabel("找回密码");
panel.add(s);
//设置一个复选框
JCheckBox b=new JCheckBox("记住密码");
b.setOpaque(false);
panel.add(b);
//设置一个复选框
JCheckBox c=new JCheckBox("自动登录");
c.setOpaque(false);
panel.add(c);
return panel;
}
/**
* 创建南边面板的方法
*/
public JPanel southPane(){
JPanel panel=new JPanel();
//JPanel默认的是流式布局(居中对齐)
//实例化一个JButton对象
JButton t=new JButton("登   录");
t.setPreferredSize(new Dimension(155,35));
panel.add(t);
return panel;
}

}


计算器界面:
重点:
   1.布局方式:首先是一个总的边框布局,实例化一个北边面板,中间面板,东边面板。
               在中间面板中使用网格布局,但由于东边面板中的等号按钮比其他按钮大,
               所以在东边面板中使用边框布局,再设置一个中间面板和南边面板,这两
               个面板中均使用网格布局。
   2.边框布局和网格布局的使用方法。
package swing界面;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class calculator {

/**
* @param args
*/
public static void main(String[] args) {
// 实例化一个Login类的对象
calculator l = new calculator();
// 调用初始化界面的方法
l.initUI();
}

/**
* 定义一个初始化界面的方法
*/
public void initUI() {
// 实例化一个JFrame类的对象
JFrame jf = new JFrame();
// 设置对象的属性值
jf.setSize(225, 420);// 设置对象的大小
jf.setTitle("计算器");// 设置对象的标题
//jf.setLocation(100, 100);// 设置对象显示的位置
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(3);// 设置窗体关闭时退出程序
jf.setResizable(false);// 设置禁止改变窗体的大

// JFrame默认的布局是边框布局
BorderLayout bl = new BorderLayout();
// 设置窗体的布局方式为边框布局
jf.setLayout(bl);

// 创建北边的面板对象
JPanel northPane = northPane();
   // 将northPane添加到窗体的北边
jf.add(northPane, BorderLayout.NORTH);


// 创建一个东边的面板对象
JPanel eastPane = eastPane();
   //将eastPane添加到窗体的东边
jf.add(eastPane, BorderLayout.EAST);


// 创建一个中间的面板对象
JPanel centerPane = centerPane();
// 将westPane添加到窗体的西边
jf.add(centerPane, BorderLayout.CENTER);

// 创建南边面板对象
//JPanel southPane = southPane();
// 将southPane面板添加到窗体的南边
//jf.add(southPane, BorderLayout.SOUTH);

jf.setVisible(true);// 设置窗体为可见
}
/**
* 创建北边面板的方法
*
* @return 返回北边面板对象
*/
public JPanel northPane() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(0, 160));
// 实例化一个JButton对象
JButton jbuLogin1 = new JButton("查看");
jbuLogin1.setPreferredSize(new Dimension(60, 25));
panel.add(jbuLogin1);
// 实例化一个JButton对象
JButton jbuLogin2 = new JButton("编辑");
jbuLogin2.setPreferredSize(new Dimension(60, 25));
panel.add(jbuLogin2);
// 实例化一个JButton对象
JButton jbuLogin3 = new JButton("帮助");
jbuLogin3.setPreferredSize(new Dimension(60,25));
panel.add(jbuLogin3);
//实例化一个文本框
JTextField jte = new JTextField();
jte.setPreferredSize(new Dimension(190, 120));// 设置组件大小
jte.setEditable(true);//设置为可编辑
panel.add(jte);
       // 返回面板对象
return panel;
}
/**
* 创建中间面板的方法
*
* @return 返回中间面板对象
*/
public JPanel centerPane() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
    // 实例化一个网格布局对象, 设置panel的布局方式为网格布局
panel.setLayout(new GridLayout(6,4));
  panel.add(new Button("MC"));
          panel.add(new Button("MR"));
          panel.add(new Button("MS"));
          panel.add(new Button("M+"));
          panel.add(new Button("←"));
          panel.add(new Button("CE"));
          panel.add(new Button("C"));
          panel.add(new Button("±"));
          panel.add(new Button("7"));
          panel.add(new Button("8"));
          panel.add(new Button("9"));
          panel.add(new Button("/"));
          panel.add(new Button("4"));
          panel.add(new Button("5"));
          panel.add(new Button("6"));
          panel.add(new Button("*"));
          panel.add(new Button("1"));
          panel.add(new Button("2"));
          panel.add(new Button("3"));
          panel.add(new Button("-"));
          panel.add(new Button("0"));
          panel.add(new Button("00"));
          panel.add(new Button("."));
          panel.add(new Button("+"));
// 返回面板对象
return panel;
}
/**
* 创建东边面板的方法
* @return返回东边面板对象
*/
    public JPanel eastPane() {
// 实例化一个JPanel对象
    JPanel panel = new JPanel();
// JFrame默认的布局是边框布局
BorderLayout bl = new BorderLayout();
// 设置窗体的布局方式为边框布局
panel.setLayout(bl);

// 创建一个中间的面板对象
JPanel centerPane = centerPanes();
// 将westPane添加到窗体的中间
panel.add(centerPane, BorderLayout.CENTER);

// 创建南边面板对象
JPanel southPane = southPanes();
// 将southPane面板添加到窗体的南边
panel.add(southPane, BorderLayout.SOUTH);

panel.setVisible(true);// 设置窗体为可见
        // 返回面板对象
return panel;
}
    /**
     * 东边面板中中间面板的方法
     */
    public JPanel centerPanes() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
    // 实例化一个网格布局对象, 设置panel的布局方式为网格布局
panel.setLayout(new GridLayout(4,1));
  panel.add(new Button("M+"));
          panel.add(new Button("√"));
          panel.add(new Button("%"));
          panel.add(new Button("1/x"));
          return panel;
    }
    /**
     * 东边面板中的南边面板的方法
     * @return
     */
    public JPanel southPanes() {
// 实例化一个JPanel对象
JPanel panel = new JPanel();
panel.setPreferredSize(new Dimension(40,80));
    // 实例化一个网格布局对象, 设置panel的布局方式为网格布局
panel.setLayout(new GridLayout(1,1));
  panel.add(new Button("="));
  return panel;
    }
}
  • 大小: 132.1 KB
  • 大小: 17.4 KB
分享到:
评论

相关推荐

    swing界面美化包

    值得注意的是,Swing界面美化不仅限于颜色和样式,还可以包括动画效果、组件交互和布局管理等方面。此外,还有许多开源的第三方库,如JIDE Components、 Substance Look and Feel 等,它们提供了丰富的主题和组件...

    Java Swing 界面美化包-含源码

    Java Swing 是Java标准库中的一个组件,用于创建图形用户界面(GUI)。Swing 提供了丰富的组件集合,如按钮、文本框、菜单等,用于构建桌面应用程序。然而,Swing 的默认界面风格(LookAndFeel)在视觉上可能相对...

    java swing界面设计

    - "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...

    java swing漂亮界面(超酷) javaswing教程

    此外,通过自定义布局或者使用LayoutManager,开发者可以实现更复杂的界面布局。 Swing中的事件处理机制也是其重要特性之一。通过监听器接口,如ActionListener、MouseListener等,开发者可以为组件添加事件响应,...

    4个swing界面.rar_java swing_swing_swing 界面_个_界面

    标题中的"4个swing界面"可能指的是四个不同的Swing界面示例,这些示例可能是为了展示Swing如何构建不同类型的窗口或对话框。对于初学者来说,了解并实践这些例子是非常有益的,因为它们可以深入理解Swing组件的用法...

    java swing漂亮界面 超酷 javaswing教程

    在创建漂亮的Java Swing界面时,有几个关键知识点需要掌握: 1. **布局管理器**:Swing 提供了多种布局管理器,如 FlowLayout、GridLayout、BorderLayout、BoxLayout 和 GroupLayout,它们帮助你组织组件在窗口中的...

    Swing布局与结构

    Swing是一种Java GUI组件库,提供了丰富的用户界面组件和布局管理器。本篇文章将详细介绍Swing的结构和布局管理器的使用。 一、Swing结构 Swing结构主要包括两个部分:组件和容器。组件是用户界面上的单个元素,如...

    hibernet swing 影碟租赁系统

    开发者可能在这里找到了关于数据库连接配置、Hibernate实体类定义、Swing界面布局以及业务逻辑控制的Java源代码文件。通过对这些代码的分析和学习,可以更深入理解如何将这三大技术有效地整合在一起,构建出一个完整...

    JavaSwing界面设计(所有控件及示例)

    Java Swing 是Java编程语言中用于构建图形用户界面(GUI)的一个强大的工具包。它是对早期的Abstract Window Toolkit (AWT) 的扩展,提供了更丰富的功能和更好的平台独立性。Swing 包含了大量的组件,使得开发者可以...

    Swing 界面设计小例子

    Swing是Java编程语言中用于构建图形用户界面(GUI)的一个工具包,它是Java ...在这个"Swing界面设计小例子"中,我们了解了如何初始化JFrame,添加组件,设置布局,以及处理事件,这些都是Swing基础应用的核心部分。

    swing界面开发

    Swing的布局管理器是构建界面布局的关键。它包括FlowLayout、BorderLayout、GridLayout、 MigLayout(非内置,但常用)、BoxLayout以及各种自定义布局。布局管理器可以帮助开发者方便地控制组件在窗口中的位置和大小...

    Java写的Swing界面系统

    在本Java写的Swing界面系统中,你将找到完整的源代码,可以直接运行并学习Swing的基本用法和高级特性。 1. **Swing组件基础**:Swing 提供了各种组件,如 JButton、JLabel、JTextField、JTextArea、JComboBox、...

    Java Swing CardLayout卡片布局的实现示例

    Java Swing CardLayout 卡片布局的实现示例 Java Swing CardLayout 卡片布局是 ...Java Swing CardLayout 卡片布局是一个功能强大且灵活的布局管理器,它可以帮助我们快速实现卡片式的界面,并提供了灵活的布局方式。

    在swing界面中嵌入javaFX运行的视频

    这篇名为“在Swing界面中嵌入JavaFX运行的视频”的博客文章探讨了如何将JavaFX的视频播放能力整合到Swing应用中,以提升用户体验。 首先,我们需要理解Swing和JavaFX之间的交互。虽然Swing是早期的UI库,但JavaFX因...

    java课程设计界面美化包,swing也可以这么漂亮

    本demo正是一个很好的教学示例,展示了如何集成和使用Substance库来美化Swing界面。 在"main"函数中的注释,作者提供了一个简单的教程,指导如何更换皮肤。通常,这涉及到加载Substance库,创建一个自定义的LookAnd...

    swing界面设计之Layou

    ### Swing界面设计之布局管理详解 #### 一、获取面板大小 在Swing中,获取一个面板(如`JPanel`)的大小非常简单。可以通过调用`getWidth()`和`getHeight()`方法来获取面板的宽度和高度。例如: ```java JPanel p1 ...

    关于Swing的布局

    通过上面的例子可以看到,通过自定义的`RowLayout`布局管理器,我们可以在Swing中创建出具有垂直或水平布局效果的界面,并且可以根据实际需求灵活调整组件的间距、填充方式等属性。这对于需要高度定制化界面的应用...

    使用Java Swing界面实现数据库基本操作.rar,Java Swing界面实现数据库基本操作

    总的来说,使用Java Swing界面实现数据库基本操作涉及到以下几个关键点: 1. 理解Swing组件和布局管理,构建用户界面。 2. 掌握JDBC,包括连接数据库、创建Statement或PreparedStatement、执行SQL语句和处理结果集。...

    设置ECLIPSE编辑窗口布局

    设置ECLIPSE编辑窗口布局,拖动编辑器相关窗口进行排列,成品字型

Global site tag (gtag.js) - Google Analytics