Swing编程概述
Swing作为AWT组件的“强化版”,它的产生主要是为了克服AWT构建的GUI,无法在所有平台都通用的问题。允许编程人员跨平台时指定统一的GUI显示风格也是Swing的最大优势。Swing是AWT的补充,而非取代者。
以下是Swing包的层次结构和继承关系。
Class JComponent
- java.lang.Object
- java.awt.Component
- java.awt.Container
- javax.swing.JComponent
- All Implemented Interfaces:
- ImageObserver, MenuContainer, Serializable
- Direct Known Subclasses:
- AbstractButton, BasicInternalFrameTitlePane, Box, Box.Filler, JColorChooser, JComboBox, JFileChooser, JInternalFrame, JInternalFrame.JDesktopIcon, JLabel, JLayer, JLayeredPane, JList, JMenuBar, JOptionPane,JPanel, JPopupMenu, JProgressBar, JRootPane, JScrollBar, JScrollPane, JSeparator, JSlider, JSpinner, JSplitPane, JTabbedPane, JTable, JTableHeader, JTextComponent, JToolBar, JToolTip, JTree, JViewport
- Swing容器主要有两种,即Window和panel,window窗口又分成两种:JFrame(窗体)和Jdialog(对话框),panel面板又有两种:JPanel面板和JScrollPane(带滚动条)的面板。JPanel必须放入到JFrame这样的顶级容器中使用,可以说JPanel是为了更为精致的布局。
-
窗口的编程实现步骤:
1、继承Jframe类(Jdialog类)
2、实例化一个Jframe对象(Jdialog对象),并调用getContentPane()方法将窗体转化成容器;
3、设置对象的各项参数(窗体大小等),设置关闭方式(如果不设置,默认为windows常规关闭方式),完成窗口的实现。下面,我们看一个简单的例子。
public class Jlayout extends JFrame{
public void CreateJframe(String title){
JFrame jf=new JFrame(title);//实例化一个窗体对象
Container ct=jf.getContentPane();//将窗体转化成容器
//JLabel jl=new JLabel("JFrame窗体示例");//
//jl.setHorizontalAlignment(SwingConstants.CENTER);//设置标签文字的对齐方式
//ct.add(jl);//将标签添加到容器中
ct.setBackground(Color.white);//设置背景色
//ct.setLayout(null);
jf.setVisible(true);
jf.setSize(200, 150);//设置大小
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JButton bt=new JButton("点我啊");//定义一个按钮
bt.setHorizontalAlignment(SwingConstants.CENTER);
bt.setBounds(10, 10, 100, 21);
bt.addActionListener(new ActionListener(){//(new ActionLinstener(){
public void actionPerformed(ActionEvent e){
new Jd(Jlayout.this).setVisible(true);
}
});
ct.add(bt);
}class Jd extends JDialog{
public Jd(Jlayout frame){
super(frame,"对话框",true);
Container ct=getContentPane();
ct.add(new JLabel("让你点你就点啊"));
setBounds(120,120,100,100);
}
}public static void main(String args[]){
new Jlayout().CreateJframe("");
}}
Swing编程概述的更多相关文章
- 【WCF--初入江湖】01 WCF编程概述
01 WCF编程概述 SOA的优点 1.服务独立于平台和工作环境.服务并不关心自己所处的环境,也不关心与之进行通信的服务所处的 环境. 2.服务相互隔离. 3.服务对协议.格式和传输中立. 4. ...
- Android网络编程概述
Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包 ...
- 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条
http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程 ...
- [C#] 《Concurrency in C# Cookbook》读书笔记(一)- 并发编程概述
并发编程概述 前言 我们经常在耳边听说一些关于高性能.并发和并行等名词,并且很多人都对并发编程有一些误解. 误解 1:并发就是多线程? 答:多线程只不过是并发编程的其中一种形式而已.并发编程的种类很多 ...
- C# 图解教程 第二章 C#编程概述
C#编程概述 一个简单的C#程序标识符关键字Main:程序的起始点从程序输出文本注释 C#编程概述 一个简单的C#程序 标识符 标识符是一种字符串,用来命名变量.方法.参数和许多后面将要阐述的其他程序 ...
- Java Swing 编程 JComboBox 显示不全问题。
最近在做Java Swing编程一个小例子.然后遇到JComboBox 宽度固定,而下拉列表比较长,导致显示不全的问题. 解决的思路想到两种,1:下拉列表当显示不全的时候,换行显示.2:在下拉列表停几 ...
- 并发编程概述--C#并发编程经典实例
优秀软件的一个关键特征就是具有并发性.过去的几十年,我们可以进行并发编程,但是难度很大.以前,并发性软件的编写.调试和维护都很难,这导致很多开发人员为图省事放弃了并发编程.新版.NET 中的程序库和语 ...
- Windows Embedded Compact 7网络编程概述(下)
11.1.1 Select I/O模型 在Windows CE中,Select模型是唯一被支持的I/O模型.Select I/O模型就是利用select函数对I/O进行管理. 函数select的功能在 ...
- java中Swing编程再度练习篇
总结: 注意理解frame的层级关系 package com.da; //添加背景图片 //我只实现了插入图片.但并没有实现是背景图片 import javax.swing.JFrame; impor ...
随机推荐
- javaCV入门指南:序章
前言 从2016年6月开始写<javacv开发详解>系列,到而今的<javacv入门指南>,虽然仅隔了两年多时间,却也改变了很多东西. 比如我们的流媒体技术群从刚开始的两三个人 ...
- configured to save RDB snapshots, but is currently not able to persist o...
Redis问题 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d ...
- 闪回之 Flashback Data Archive
背景:Oracle 11g 中 Flashback Data Archive 特性.将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和 undo 区别开来,这样就可以为 ...
- [转]addEventListener的第三个参数
如果要把HTML元素的事件与某个函数绑定起来,可以有下面三种方法,以最常见的“点击”事件为例. 方法一: 直接在对应的HTML元素标签上绑定函数 ? 1 <button id='submit' ...
- JZOJ 1667【AHOI2009】中国象棋——dp
题目:https://jzoj.net/senior/#main/show/1667 只注重0.1.2的列有多少个,不注重它们的位置,就能记录了. #include<iostream> # ...
- WPF GridView中的CellTemplate失效的原因
最近做一个ListView的Style时,发现一个问题, 就是我的GridView的GridViewColumn的CellTemplate无论是用StaticResource还是DynamicReso ...
- UVa 10801 Lift Hopping (Dijkstra)
题意:有一栋100层的大楼(标号为0~99),里面有n个电梯(不超过5个),以及要到达的层数(aid),然后是每个电梯走一层所需的时间, 再n行就是对应每个电梯可以到达的层数,数量不定.然后每装换一次 ...
- 2014年第五届蓝桥杯国赛试题(JavaA组)
1.结果填空 (满分15分)2.结果填空 (满分45分)3.代码填空 (满分30分)4.程序设计(满分30分)5.程序设计(满分80分)6.程序设计(满分100分) 1.标题:海盗分金币 有5个海盗, ...
- FZU - 2109 Mountain Number 数位dp
Mountain Number One integer number x is called "Mountain Number" if: (1) x>0 and x is a ...
- memcached 扩展安装(windows)
在脚本之家里下载扩展压缩包 https://www.jb51.net/softs/392873.html 安装扩展前得先安装memcached并启动 下载完扩展压缩包解压并找到对应自己php版本 复制 ...