该范例主要是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. spring 之 lookup-method & replaced-method II

    显然, lookup-method 的name 对应的方法 是可以有方法参数的, 但是, 我发现, 参数无法传递, 传过去的参数好像被丢入了黑洞一般... 非常奇怪. lookup-method 的n ...

  2. Mybatis学习4——核心文件sqlMapperConfig.xml属性

    1.外部文件jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis ...

  3. 3. java.lang.UnsupportedClassVersionError: javax/annotation/ManagedBean : Unsupported major.minor version 51.0

    问题描述:

  4. js对象及元素复制拷贝

    1.数组及对象拷贝: 浅拷贝var b=$.extend(false,{},a);//对象浅拷贝 var a={aa:111,bb:{bb1:22}}; var b=$.extend(false,{} ...

  5. java中的byte

    8 bit (位) = 1 Byte (字节) java中的byte就是Byte 1024 Byte = 1KB 1024 KB = 1MB 1:“字节”是byte,“位”是bit : 2: 1 by ...

  6. vue-router 动态导航 router-link :to属性

    经常碰到这类需求,从后台获取数据后再前程连接,参数id动态获取 <el-row v-for="item in Travels"> <el-col :span=&q ...

  7. node.js 递归创建多级目录

    fs.mkdir只能创建一级目录,所以我们可以自定义一个mkdirs函数,利用递归和回调来实现创建多级目录. function mkdirs(dirname, callback) { //检测目录是否 ...

  8. PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用

    在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文.Name用来显 示,Code在代码中使用,但Comment中的文字会保 ...

  9. leetcode题解 Generate Parentheses

    原文链接:https://leetcode.com/problems/generate-parentheses 给出数字n,求n对括号组成的合法字符串. 刚做出来,敲完代码,修改了一次,然后提交,ac ...

  10. ubuntu 安装 oracle sql developer

    安装java-jdk 这一部分教程很多,可按照网上教程进行安装 安装sqldeveloper 下载 sqldeveloper Linux RPM http://www.oracle.com/techn ...