Java Swing教程 (2009-10-16 21:41:29)转载▼标签: 杂谈
创建一个JFrame
下面用简单的实例演示了Java Swing创建一个能输入内容的窗口
public class frameTest(){
public static void Main(String args[]){
//创建JFrame对象,JFrame用来在屏幕上显示一个Windows窗口。
JFrame frame = new JFrame("第一个JFrame");
// 建立一个文本输入域对象,由于文本输入域是JComponent的子类,可以采用以
// 下方法定义。
JComponent comp = new JTextArea();
// 将上面建立的文本输入域加入到frame对象
// 默认情况下,frame的内容面板(容器)采用BorderLayout布局,
// 这里是将文本输入域放入BorderLayout布局的Center部位。
// 有关BorderLayout布局的内容,请查阅
// http://gyfinjava.blog.com.cn/archives/2007/2161340.shtml
frame.getContentPane().add(comp, BorderLayout.CENTER);
// 设置其高度和宽度分别为:288像素和188像素
frame.setSize(288,188);
// 显示该Frame
frame.setVisible(true);
}
}
JFrame的预定义动作事件
在Java Swing教程1中的Main方法中加入以下代码:
//当用户选择窗口的退出按钮(窗口右上角的X),
//或选择窗体功能菜单的推出项时的动作
//下行代码可以使单击退出按钮时,退出该JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//下行代码可以使JFrame的退出按钮失效
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
创建没无边框的Frame(Window)
该实例演示了怎样创建一个没有边框的Frame(Window)。如果要创建
不显示边框的Frame(Window),则推荐使用JWindow。
import javax.swing.JWindow;
public class JWindowTest {
public static void main(String[] args){
//创建JWindows对象
JWindow window = new JWindow();
// 这里,一样可以通过教程getContentPane().add()方法为该JWindow增加组件
//window.getContentPane().add(JComponent, BorderLayout.CENTER);
// 设置初始化大小
window.setSize(200, 200);
// 显示该窗体
window.setVisible(true);
}
}
Java Swing教程4-文件选择框
Java为文件选择框提供了JFileChooser类API。通过使用该类,可以很方便的现实文件选择对话框。见下例:
//建立文件选择框对象
JFileChooser fc=new JFileChooser();
//设定文件选择框标题
fc.setDialogTitle("Open class File");
//显示文件选择框,在选择后将结果储存到returnVal变量中
int returnVal = fc.showOpenDialog(app.getFrameInstance());
//如果用户选择了文件,并点击了"Opne/打开"按钮,显示用户选择的文件全名路径,
//如果用户点击"Close/关闭"按钮,以及其它方式退出文件选择框,则什么也不做。
if (returnVal == JFileChooser.APPROVE_OPTION){
File file = fc.getSelectedFile();
System.out.println(file.getPath());
}
注意在文件选择对话框中,可以进行选择目录的操作,只需要用FileChooser对象的setFileSelectionMode()方法指定其选择模式为目录选择。见下面代码
//上例中可以在文件对话框显示语句前加上下面代码,使对话框成为目录选择对话框
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
在文件选择过程中,我们可以为文件选择对话框设置过滤器,有了过滤器的对话框,会用下拉列表的方式将过滤的文件名特征显示在"文件类型"组合框中,并将不符合条件的文件名和目录名过滤掉(不显示)。
为一个文件选择对话框设置过滤器需要定义过滤器类,见下例:
public class ClassFileFilter extends FileFilter{
public boolean accept(File f) {
String filename = f.getName();
return filename.endsWith(".class");
}
public String getDescription() {
return "*.class";
}
}
该类定义了一个过滤Java类文件"*.class"的过滤器。
将它增加到文件选择对话框中,可以过滤出以.class为尾缀的文件。见下面代码:
fc.addChoosableFileFilter(new ClassFileFilter());
针对一个对话框,我们可以为其加装多个过滤器。这里有对过滤器更加诠释的代码:
public class ImageFilter extends FileFilter {
//Accept all directories and all gif, jpg, tiff, or png files.
public boolean accept(File f) {
if (f.isDirectory()) {
return true;
}
String extension = Utils.getExtension(f);
if (extension != null) {
if (extension.equals(Utils.tiff) ||
extension.equals(Utils.tif) ||
extension.equals(Utils.gif) ||
extension.equals(Utils.jpeg) ||
extension.equals(Utils.jpg) ||
extension.equals(Utils.png)) {
return true;
} else {
return false;
}
}
return false;
}
public String getDescription() {
return "Just Images";
}
}
该过滤器为图像文件过滤器。
Java Swing教程5-JTable
利用J2SE提供的JTable组件类可以很方便的实现应用程序中的表格功能,以实例阐述如下:
该实例运行结果如下:
其代码如下:
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
public class Test01 {
public static void main(String[] args) {
//声明列名数组
String[] columnNames = { "姓名", "性别", "年龄", "籍贯", "婚否" };
//声明数据二维数组
Object[][] data = {
{ "赵刚", "男", new Integer(18), "北京", new Boolean(false) },
{ "钱霞", "女", new Integer(28), "北京", new Boolean(true) },
{ "孙大伟", "男", new Integer(32), "上海", new Boolean(false) },
{ "李民", "男", new Integer(30), "南京", new Boolean(true) },
{ "周丽丽", "女", new Integer(34),"重庆",new Boolean(false) } };
//创建JTable对象t
final JTable t = new JTable(data, columnNames);
//设置JTable对象的可视区,超出部分会用下面的滚动条来显示
t.setPreferredScrollableViewportSize(new Dimension(400, 70));
//定义一个容器
JPanel p = new JPanel();
//在容器中加入表格和滚动条
p.add(t);
JScrollPane s = new JScrollPane(t);
p.add(s);
//设置容器为透明的
p.setOpaque(true);
//以下代码在前几个Java Swing教程中已经讲过,这里不重复!
JFrame f = new JFrame("JTable测试!");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(p,BorderLayout.CENTER);
f.pack();
f.setVisible(true);
}
没有合适的资源?快使用搜索试试~ 我知道了~
java swing实例源码
共833个文件
class:462个
java:211个
gif:72个
3星 · 超过75%的资源 需积分: 9 7 下载量 177 浏览量
2012-04-12
12:00:04
上传
评论
收藏 837KB ZIP 举报
温馨提示
非常好的java swing实例,通过对对此实例学习,你可以快速掌握JAVA.Swing编程技术!
资源推荐
资源详情
资源评论
收起资源包目录
java swing实例源码 (833个子文件)
chinese.html.bak 419B
chinese.html.bak 419B
MainFrame.class 8KB
MainFrame.class 7KB
MainFrame$ActionSet.class 7KB
MainFrame.class 7KB
MainFrame.class 6KB
MainFrame$ActionSet.class 6KB
MainFrame.class 6KB
JTextArea5.class 5KB
SliderDemo3.class 5KB
TreeDemo6.class 4KB
JPopupMenu1.class 4KB
JToolBar3.class 4KB
SliderDemo2.class 4KB
TimerDemo1.class 4KB
JToolBar1.class 4KB
ColorChooserDemo2.class 4KB
LF1.class 4KB
MainFrame.class 4KB
MainFrame.class 4KB
FileChooserDemo1.class 4KB
JRadioButtonMenuItem2.class 4KB
JTextArea4.class 4KB
PMInputStreamFixed.class 4KB
JRadioButtonMenuItem1.class 4KB
JCheckBoxMenuItem1.class 4KB
SliderDemo1.class 4KB
JComboBox8.class 4KB
ProgressMonitorDemo.class 3KB
SelectionModelDemo.class 3KB
PMonitorInputStream.class 3KB
TreeDemo5.class 3KB
ColorChooserDemo1.class 3KB
AddRemoveCells.class 3KB
JLayeredPane2.class 3KB
ReadDocContent.class 3KB
ReadDocContent.class 3KB
LendingSystem.class 3KB
TableEventHandle.class 3KB
TreeDemo4.class 3KB
JPopupMenu1$PopupPanel.class 3KB
ProgressBarDemo.class 3KB
JTextPane1.class 3KB
JTabbedPane2.class 3KB
MainFrame.class 3KB
JScrollPane2.class 3KB
JList8.class 3KB
TreeDemo7.class 3KB
ConfirmDialog.class 3KB
MouseDemo3.class 3KB
JRadioButton2.class 3KB
JScrollBar1.class 3KB
InputDialog.class 3KB
JMenuItem4.class 2KB
JMenuItem5.class 2KB
JRadioButton1.class 2KB
MessageDialog.class 2KB
JCheckBox2.class 2KB
FileIconFilterDemo.class 2KB
InternalDialog.class 2KB
CardLayoutDemo.class 2KB
ColorChooserDemo3.class 2KB
HtmlPane.class 2KB
HtmlPane.class 2KB
HtmlPane.class 2KB
JList7.class 2KB
FileFilterDemo.class 2KB
KeyDemo.class 2KB
JLayeredPane1.class 2KB
JInternalFrame1.class 2KB
JList2.class 2KB
JScrollPane1.class 2KB
OptionPaneDemo.class 2KB
JMenuItem3e2.class 2KB
JMenuItem3e.class 2KB
JPasswordField1.class 2KB
MainFrame$NewFrame.class 2KB
MainFrame$NewFrame.class 2KB
JTextArea1.class 2KB
GridBagLayoutDemo.class 2KB
JToolBar2.class 2KB
TreeDemo3.class 2KB
JPasswordField3.class 2KB
JTextField3.class 2KB
DialogAppletDemo.class 2KB
MouseDemo1.class 2KB
JTextArea3.class 2KB
MouseDemo2.class 2KB
DialogDemo.class 2KB
OptionDialog.class 2KB
JMenuItem2e.class 2KB
JMenuItem3.class 2KB
JTextField1.class 2KB
SimpleTable2.class 2KB
TableModel2.class 2KB
JMenuItem2.class 2KB
JComboBox6.class 2KB
JComboBox5.class 2KB
EventDemo6.class 2KB
共 833 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
- bshzhx122013-03-01比较简单实用
chy1208
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功