该范例主要是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

package com.example.swingdemo;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.PrintWriter;
import java.io.StringWriter; 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 phoneLabel = null;
    private JTextField phoneText = null;     private JButton btnQuery = null;
    
    private JLabel contentLabel = null;
    private JTextPane contentPane = null;     public ComponentDemo() {
        super();
        initialize();
    }     private void initialize() {         phoneLabel = new JLabel();
        phoneLabel.setBounds(new java.awt.Rectangle(10, 10, 70, 22));
        phoneLabel.setText("电话号码:");
        this.setLayout(null);
        this.add(phoneLabel, null);
        this.add(getPhoneText(), null);
        
        this.add(getBtnQuery(), null);
        
        this.add(getContentLabel(), null);
        this.add(getContentPaneText(), null);     }     private JTextField getPhoneText() {
        if (phoneText == null) {
            phoneText = new JTextField();
            phoneText.setBounds(new java.awt.Rectangle(80, 10, 100, 22));
        }
        return phoneText;
    }     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, 350, 150));
        }
        return contentPane;
    }     private JButton getBtnQuery() {
        if (btnQuery == null) {
            btnQuery = new JButton("查询UserId");
            btnQuery.setBounds(new java.awt.Rectangle(10, 45, 100, 22));
//            btnQuery.setText("查询");
            btnQuery.addActionListener(this);         //注册监听事件
        }
        return btnQuery;
    } //    private OperateAction business = null;
//    static Logger logger = Logger.getLogger(UserIdComponent.class.getName());     public void actionPerformed(ActionEvent e) {
        //在这里添加按下按钮后的触发事件
        
        try {             String btnName = e.getActionCommand();
            if (btnName.equals("查询UserId")) {
                contentPane.setEditable(true);  //设置文本框为可编辑
                String phoneNumber=phoneText.getText();    //获取电话号码
                String outputString="phoneNumber是"+phoneNumber+"\nUserId我并不知道啦\n"+"啦啦啦/啦啦啦/我是可爱的小胖妞^_^";
                contentPane.setText(outputString);    
            }
        } catch (Exception e1) {
            StringWriter trace = new StringWriter();
            e1.printStackTrace(new PrintWriter(trace));
        }    
    } }

代码运行结果如下:

java swing示例的更多相关文章

  1. Java Swing的进化

    摘 要:Swing已是一个比较老的工具集了,在美观的用户界面出来之前需要开发很长时间.它缺少一些你在开发富UI时所需的组件.幸运地是,像 Substance,SwingX及Java Look-and_ ...

  2. Java Swing 快捷键

    Java  Swing 快捷键 给Java Swing 编程中按钮或者其他组件事件添加快捷键的方法: Component.setAccelerator(KeyStroke.getKeyStroke(‘ ...

  3. java swing 添加 jcheckbox复选框

    总体上而言,Java Swing编程有两大特点:麻烦.效果差. 麻烦是说由于设计器的使用不方便(如果您希望使用窗体设计器通过快速拖拽控件建立您的Java Swing GUI程序,请您使用MyEclip ...

  4. Atitit.java swing打印功能 api  attilax总结

    Atitit.java swing打印功能 api  attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...

  5. java swing JDialog 和 java.util.concurrent的使用

    参考链接: Java-Swing的JFrame的一些插件使用详解 java swing JDialog 使用 ScheduledExecutorService定时周期执行指定的任务 swing JDi ...

  6. 恶补Java Swing线程刷新UI机制(由浅到深的参考大佬博文)

    1. java中进度条不能更新问题的研究 感谢大佬:https://blog.csdn.net/smartcat86/article/details/2226681 为什么进度条在事件处理过程中不更新 ...

  7. Java Swing interview

    http://www.careerride.com/Swing-AWT-Interview-Questions.aspx   Swing interview questions and answers ...

  8. Java Swing 第03记 布局管理器

    几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...

  9. Java Swing 第01记 Hello Word

    首先来一个Java Swing的HelloWord程序. package cn.java.swing.chapter03; import javax.swing.JButton; import jav ...

随机推荐

  1. python中str的索引、切片

    1 a = "hello" 2 a1 = a[1] 3 a2 = a[0:2] 4 print(a1) 5 print(a2) 我们通过索引获取字符串中指定位数的字符 通过切片获取 ...

  2. userdel 用户名 出现“用户**目前已登录”

    userdel 用户名 出现“用户**目前已登录” 今天在删除用户账号的时候,发现一个奇怪现象,即: userdel: user newname is currently logged in 相关命令 ...

  3. 抓取mooc中国随笔

    // $url = "http://www.baidu.com/"; $url= "https://www.icourse163.org/web/j/courseBean ...

  4. delphi’线程新技术 并行计算

    TParallel TInterLocked 并行库中的TTask http://docwiki.embarcadero.com/Libraries/Berlin/en/System.Threadin ...

  5. python中split()、os.path.split()函数用法

    一.Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串 str.split(str="", num=string ...

  6. WDA-Web Dynpro的POWL(个人对象工作清单)

    POWL(Personal Object Worklist) for Web Dynpro 转载地址:https://blogs.sap.com/2013/02/15/powlpersonal-obj ...

  7. Linux命令之top

    Linux中的top命令显示系统上正在运行的进程.它是系统管理员最重要的工具之一.被广泛用于监视服务器的负载.在本篇中,我们会探索top命令的细节.top命令是一个交互命令.在运行top的时候还可以运 ...

  8. 15.Colection集合和Iterator接口.md

    目录 1.Collection 1.1概念 1.1遍历方法-Lambda表达式 1.2遍历方法-Iterator接口 1.3使用Lambda方法遍历Iterator接口 1.4使用Foreach方法遍 ...

  9. ArcGIS中的WKID(转)

    ArcGIS中的WKID link: https://www.cnblogs.com/liweis/p/5951032.html 提到坐标系统,大家多少能明白一些,但在运用时,有些朋友搞得不是非常清楚 ...

  10. Unity3d资源管理分析

    原创链接:http://blog.csdn.net/ox_thedarkness/article/details/9197453 分离资源管理 参考 1.Unity3D占用内存太大的解决方法 - 星尘 ...