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
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示例的更多相关文章
- Java Swing的进化
摘 要:Swing已是一个比较老的工具集了,在美观的用户界面出来之前需要开发很长时间.它缺少一些你在开发富UI时所需的组件.幸运地是,像 Substance,SwingX及Java Look-and_ ...
- Java Swing 快捷键
Java Swing 快捷键 给Java Swing 编程中按钮或者其他组件事件添加快捷键的方法: Component.setAccelerator(KeyStroke.getKeyStroke(‘ ...
- java swing 添加 jcheckbox复选框
总体上而言,Java Swing编程有两大特点:麻烦.效果差. 麻烦是说由于设计器的使用不方便(如果您希望使用窗体设计器通过快速拖拽控件建立您的Java Swing GUI程序,请您使用MyEclip ...
- Atitit.java swing打印功能 api attilax总结
Atitit.java swing打印功能 api attilax总结 1. 打印方式有三种:2 1.1. 一是不经过任何修改,直接调用javascript中的window.print()打印.2 ...
- java swing JDialog 和 java.util.concurrent的使用
参考链接: Java-Swing的JFrame的一些插件使用详解 java swing JDialog 使用 ScheduledExecutorService定时周期执行指定的任务 swing JDi ...
- 恶补Java Swing线程刷新UI机制(由浅到深的参考大佬博文)
1. java中进度条不能更新问题的研究 感谢大佬:https://blog.csdn.net/smartcat86/article/details/2226681 为什么进度条在事件处理过程中不更新 ...
- Java Swing interview
http://www.careerride.com/Swing-AWT-Interview-Questions.aspx Swing interview questions and answers ...
- Java Swing 第03记 布局管理器
几种Swing常用的布局管理器 BorderLaout 它将容器分为5个部分,即东.南.西.北.中,每一个区域可以容纳一个组件,使用的时候也是通过BorderLayout中5个方位常量来确定组件所在的 ...
- Java Swing 第01记 Hello Word
首先来一个Java Swing的HelloWord程序. package cn.java.swing.chapter03; import javax.swing.JButton; import jav ...
随机推荐
- spring 之 lookup-method & replaced-method II
显然, lookup-method 的name 对应的方法 是可以有方法参数的, 但是, 我发现, 参数无法传递, 传过去的参数好像被丢入了黑洞一般... 非常奇怪. lookup-method 的n ...
- Mybatis学习4——核心文件sqlMapperConfig.xml属性
1.外部文件jdbc.properties jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis ...
- 3. java.lang.UnsupportedClassVersionError: javax/annotation/ManagedBean : Unsupported major.minor version 51.0
问题描述:
- js对象及元素复制拷贝
1.数组及对象拷贝: 浅拷贝var b=$.extend(false,{},a);//对象浅拷贝 var a={aa:111,bb:{bb1:22}}; var b=$.extend(false,{} ...
- java中的byte
8 bit (位) = 1 Byte (字节) java中的byte就是Byte 1024 Byte = 1KB 1024 KB = 1MB 1:“字节”是byte,“位”是bit : 2: 1 by ...
- vue-router 动态导航 router-link :to属性
经常碰到这类需求,从后台获取数据后再前程连接,参数id动态获取 <el-row v-for="item in Travels"> <el-col :span=&q ...
- node.js 递归创建多级目录
fs.mkdir只能创建一级目录,所以我们可以自定义一个mkdirs函数,利用递归和回调来实现创建多级目录. function mkdirs(dirname, callback) { //检测目录是否 ...
- PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用
在使用PowerDesigner对数据库进行概念模型和物理模型设计时,一般在NAME或Comment中写中文,在Code中写英文.Name用来显 示,Code在代码中使用,但Comment中的文字会保 ...
- leetcode题解 Generate Parentheses
原文链接:https://leetcode.com/problems/generate-parentheses 给出数字n,求n对括号组成的合法字符串. 刚做出来,敲完代码,修改了一次,然后提交,ac ...
- ubuntu 安装 oracle sql developer
安装java-jdk 这一部分教程很多,可按照网上教程进行安装 安装sqldeveloper 下载 sqldeveloper Linux RPM http://www.oracle.com/techn ...