您的位置首页百科知识

java swing入门教程

java swing入门教程

的有关信息介绍如下:

java swing入门教程

java swing 简单案例

创建一个JFrame

下面用简单的实例演示了JavaSwing创建一个能输入内容的窗口

publicclassframeTest(){

publicstaticvoidMain(Stringargs[]){

//创建JFrame对象,JFrame用来在屏幕上显示一个Windows窗口。

JFrameframe=newJFrame("第一个JFrame");

//建立一个文本输入域对象,由于文本输入域是JComponent的子类,可以采用以

//下方法定义。

JComponentcomp=newJTextArea();

//将上面建立的文本输入域加入到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的预定义动作事件

在JavaSwing教程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。

importjavax.swing.JWindow;

publicclassJWindowTest{

publicstaticvoidmain(String[]args){

//创建JWindows对象

JWindowwindow=newJWindow();

//这里,一样可以通过教程getContentPane().add()方法为该JWindow增加组件

//window.getContentPane().add(JComponent,BorderLayout.CENTER);

//设置初始化大小

window.setSize(200,200);

//显示该窗体

window.setVisible(true);

}

}

JavaSwing教程4-文件选择框

Java为文件选择框提供了JFileChooser类API。通过使用该类,可以很方便的现实文件选择对话框。见下例:

//建立文件选择框对象

JFileChooserfc=newJFileChooser();

//设定文件选择框标题

fc.setDialogTitle("OpenclassFile");

//显示文件选择框,在选择后将结果储存到returnVal变量中

intreturnVal=fc.showOpenDialog(app.getFrameInstance());

//如果用户选择了文件,并点击了"Opne/打开"按钮,显示用户选择的文件全名路径,

//如果用户点击"Close/关闭"按钮,以及其它方式退出文件选择框,则什么也不做。

if(returnVal==JFileChooser.APPROVE_OPTION){

Filefile=fc.getSelectedFile();

System.out.println(file.getPath());

}

注意在文件选择对话框中,可以进行选择目录的操作,只需要用FileChooser对象的setFileSelectionMode()方法指定其选择模式为目录选择。见下面代码

//上例中可以在文件对话框显示语句前加上下面代码,使对话框成为目录选择对话框

fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

在文件选择过程中,我们可以为文件选择对话框设置过滤器,有了过滤器的对话框,会用下拉列表的方式将过滤的文件名特征显示在"文件类型"组合框中,并将不符合条件的文件名和目录名过滤掉(不显示)。

为一个文件选择对话框设置过滤器需要定义过滤器类,见下例:

publicclassClassFileFilterextendsFileFilter{

publicbooleanaccept(Filef){

Stringfilename=f.getName();

returnfilename.endsWith(".class");

}

publicStringgetDescription(){

return"*.class";

}

}

该类定义了一个过滤Java类文件"*.class"的过滤器。

将它增加到文件选择对话框中,可以过滤出以.class为尾缀的文件。见下面代码:

fc.addChoosableFileFilter(newClassFileFilter());

针对一个对话框,我们可以为其加装多个过滤器。这里有对过滤器更加诠释的代码:

publicclassImageFilterextendsFileFilter{

//Acceptalldirectoriesandallgif,jpg,tiff,orpngfiles.

publicbooleanaccept(Filef){

if(f.isDirectory()){

returntrue;

}

Stringextension=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)){

returntrue;

}else{

returnfalse;

}

}

returnfalse;

}

publicStringgetDescription(){

return"JustImages";

}

}

该过滤器为图像文件过滤器。

JavaSwing教程5-JTable

利用J2SE提供的JTable组件类可以很方便的实现应用程序中的表格功能,以实例阐述如下:

该实例运行结果如下:

其代码如下:

importjava.awt.BorderLayout;

importjava.awt.Dimension;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.JScrollPane;

importjavax.swing.JTable;

publicclassTest01{

publicstaticvoidmain(String[]args){

//声明列名数组

String[]columnNames={"姓名","性别","年龄","籍贯","婚否"};

//声明数据二维数组

Object[][]data={

{"赵刚","男",newInteger(18),"北京",newBoolean(false)},

{"钱霞","女",newInteger(28),"北京",newBoolean(true)},

{"孙大伟","男",newInteger(32),"上海",newBoolean(false)},

{"李民","男",newInteger(30),"南京",newBoolean(true)},

{"周丽丽","女",newInteger(34),"重庆",newBoolean(false)}};

//创建JTable对象t

finalJTablet=newJTable(data,columnNames);

//设置JTable对象的可视区,超出部分会用下面的滚动条来显示

t.setPreferredScrollableViewportSize(newDimension(400,70));

//定义一个容器

JPanelp=newJPanel();

//在容器中加入表格和滚动条

p.add(t);

JScrollPanes=newJScrollPane(t);

p.add(s);

//设置容器为透明的

p.setOpaque(true);

//以下代码在前几个JavaSwing教程中已经讲过,这里不重复!

JFramef=newJFrame("JTable测试!");

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.getContentPane().add(p,BorderLayout.CENTER);

f.pack();

f.setVisible(true);

}

}