java swing示例

该范例主要是JFrame(框架)和Jpanel(画板),在Jpanel容器上添加控件,然后再把Jpanel放进JFrame的容器里面。

FrameDemo.java

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;

public class FrameDemo extends JFrame{
    public static void main(String[] args)  throws Exception {

        //获取主显示器屏幕大小
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int screenWidth = screenSize.width;
        int screenHeight = screenSize.height; 

        //设置界面组件
        ComponentDemo component = new ComponentDemo();
        FrameDemo frameDemo = new FrameDemo();
        frameDemo.setContentPane(component);   //将Panel放入到Frame中
        frameDemo.setSize(400, 500);
        frameDemo.setLocation(screenWidth / 2 - 390 / 2, screenHeight / 2 - 580 / 2);
        frameDemo.setVisible(true);

    }

}

ComponentDemo.java

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JTextPane;

public class ComponentDemo extends JPanel implements ActionListener {
    //JLabel是标签,JTextField是文本框
    private JLabel userLabel = null;
    private JTextField userText = null;

    private JLabel passwordLabel = null;
    private JTextField passwordText = null;

    private JButton btnLogin = null;

    private JLabel contentLabel = null;
    private JTextPane contentPane = null;

    //组件初始化
    public ComponentDemo() {
        super();
        initialize();
    }

    private void initialize() {

        userLabel = new JLabel();
        /*用setBounds(Rectangle r)画矩形,Rectangle(x,y,weight,height)
            x,y表示矩形的左上角坐标,weight表示矩形长度,height表示高度                          */
        userLabel.setBounds(new java.awt.Rectangle(10, 10, 70, 22));
        userLabel.setText("账号:");
        this.setLayout(null);
        //添加Label(标签)和TextField(文本框)
        this.add(userLabel, null);
        this.add(getUserText(), null);

        this.add(getPasswordLabel(), null);
        this.add(getPasswordText(), null);

        this.add(getBtnLogin(), null);

        this.add(getContentLabel(), null);
        this.add(getContentPaneText(), null);

    }

    private JTextField getUserText() {
        if (userText == null) {
            userText = new JTextField();
            userText.setBounds(new java.awt.Rectangle(80, 10, 100, 22));
        }
        return userText;
    }

    private JLabel getPasswordLabel() {
       if (passwordLabel == null) {
        passwordLabel = new JLabel();
        passwordLabel.setText("密码:");
        passwordLabel.setBounds(new java.awt.Rectangle(210, 10, 70, 22));
      }
    return passwordLabel;
}

    private JTextField getPasswordText() {
       if (passwordText == null) {
         passwordText = new JTextField();
         passwordText.setBounds(new java.awt.Rectangle(280, 10, 100, 22));
       }
    return passwordText;
}

    private JLabel getContentLabel() {
        if (contentLabel == null) {
            contentLabel = new JLabel();
            contentLabel.setText("内容如下:");
            contentLabel.setBounds(new java.awt.Rectangle(10, 70, 70, 22));
        }
        return contentLabel;
    }

    private JTextPane getContentPaneText() {
        if (contentPane == null) {
            contentPane = new JTextPane();
            contentPane.setEditable(false);
            contentPane.setBounds(new java.awt.Rectangle(10, 90, 370, 150));
        }
        return contentPane;
    }

    private JButton getBtnLogin() {
        if (btnLogin == null) {
            btnLogin = new JButton("登录");
            btnLogin.setBounds(new java.awt.Rectangle(150, 45, 100, 22));
            btnLogin.addActionListener(this);         //注册监听事件
        }
        return btnLogin;
    }

    public void actionPerformed(ActionEvent e) {
        //在这里添加按下按钮后的触发事件

    }

}

代码运行结果如下:

时间: 2024-11-19 02:31:36

java swing示例的相关文章

Java Swing布局管理器GridBagLayout的使用示例 [转]

GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的, GridBagLayout 类是一个灵活的布局管理器,它不要求组件的大小相同便可以将组件垂直.水平或沿它们的基线对齐. 每个 GridBagLayout 对象维持一个动态的矩形单元网格,每个组件占用一个或多个这样的单元,该单元被称为显示区域. 下面就通过一个记事本案例去说明GridBagLayout的使用方法. 分析: 带有箭头的说明可以拉伸的. 4占用4个格

Java Swing的进化

摘 要:Swing已是一个比较老的工具集了,在美观的用户界面出来之前需要开发很长时间.它缺少一些你在开发富UI时所需的组件.幸运地是,像 Substance,SwingX及Java Look-and_Feel图形仓库这样的开源项目使这一切变得不同.作者Steven Haines向你展示了如何无痛苦地向你的Swing UI中添加树表,语法高亮,以及其它更多的东西. 在最近这些年里,用户界面设计与开发已经发生了很大的改变,一些人可能会说Java平台已经停滞不前了.发布于1997年的Swing仍然是在

Atitit。D&D drag&drop拖拽功能c#.net java swing的对比与实现总结

Atitit.D&D drag&drop拖拽功能c#.net java swing的对比与实现总结 1. 实现一个D&D操作一般包括三个步骤: 1 2. .net黑头的拖曳机制.必须有DragEnter事件(单独写DragDrop事件是不会具有拖拽功能的) 2 3. ---java黑头的拖曳..必须有DragEnter事件(单独写 Drop事件是不会具有拖拽功能的) 2 4. 代码 3 5. 参考 5 1. 实现一个D&D操作一般包括三个步骤: 首先实现一个拖拽源,这个拖拽

【小型系统】抽奖系统-使用Java Swing完成

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法

在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出现.说这是 Java Swing 的 bug 还是 GTK+/GNOME 3 的主题(如 Adwaita)的 bug 其实意义不是太大.这里给出一个简单的解决办法,其思路是修改 GTK+/GNOME 3 的主题,这里以系统默认的 Adwaita 主题为例: Adwaita 主题文件位于 /usr/s

(转载) Java Swing 之 JScrollPane (滚动面板) 使用方法

1 /** 2 * java swing 之JScrollPane面板 3 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 4 * JScrollPane面板,JscrollPane面板是带滚动条的面板,也是一种容器,但是常用于布置单个 5 * 控件,并且不可以使用布局管理器.如果需要在JScrollPane面板中放置多个控件,需要将多个 6 * 控件放置到JPanel 面板上,然后将JPanel面板作为一个整体控件添加到JScrollPane控件上. 7

抽奖系统-使用Java Swing完成

一.需求分析 1. 显示候选人照片和姓名. 2. 可以使用多种模式进行抽奖,包括一人单独抽奖.两人同时抽奖.三人同时抽奖. 3. 一个人可以在不同的批次的抽奖中获取一.二.三等奖,但是不能在同一批次抽奖中获取多个奖项. 二.系统总体框架 系统需求比较简单,采用Java Swing技术可以很好的实现,系统的总体类框架图如下 说明:基于主要的三个类就可以完成所需要的功能,Frame有Panel类型与MouseAdapter类型的成员,Panel主要用户存放具体的控件和绘制相应的信息,MouseAda

atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform

atitit.软件开发GUI 布局管理优缺点总结java swing wpf web html c++ qt php asp.net winform 1. Absoluti 布局(经常使用) 1 2. Flow 布局(不经常使用) 1 3. BorderLayout (不经常使用) 1 4. BoxLayout( html默认布局) 2 5. CardLayout (tab 布局) 2 6. GridLayout 3 7. GridBagLayout 3 8. Fixed 定位(不经常使用) 3

Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现

Atitit. 悬浮窗口的实现 java swing c# .net c++ js html 的实现 1. 建立悬浮窗口引用代码 1 1.1. 定义悬浮窗口,设置this主窗口引用,是为了在悬浮窗口中双击可缩小还还原主窗口.以及悬浮窗口右键菜单"显示主界面"中需要还原主窗 1 1.2. //设置主窗口关闭时,先关闭悬浮窗口.and系统托盘 1 1.3. 注入系统托盘图标,退出的时候儿也退出系统托盘 2 2. 悬浮窗口结构and重大的点 2 2.1. 要去掉标题栏: 2 2.2. Opa