当前位置:文档之家› swing 组件和容器——java swing 组件技术(中)

swing 组件和容器——java swing 组件技术(中)

swing 组件和容器——java swing 组件技术(中)
swing 组件和容器——java swing 组件技术(中)

swing 组价和容器——java swing 组件和技术(中)

一、swing组件和容器概览

1.顶层容器(JFrame,JDialog,JApplet)

JFrame—框架,主要用来设计应用程序的图像界面

JDialog—对话框,通常用来设计具有依赖关系的窗口

JApplet—小应用程序,主要用来设计嵌入网页中运行的java程序2.一般容器

普通容器(JPanel、JScrollPane、JToolbar、JSplitPane、JTabbedPane) JPanel—面板,通常只有背景颜色的普通容器

JScrollPane—滚动窗格,具有滚动条

JToolbar—工具条,通常将多个组件排成一排或者一列

JSplitPane—分裂窗格,用来装两个组件的容器

JTabbedPane—选项卡窗格,允许多个组件共享相同的界面空间

专用容器(JLayeredPane、JRootPane 、JInternalFrame)

JLayeredPane—分层窗格,给窗格增加了深度的概念

JRootPane—根窗格,一般是自动创建的容器

JInternalFrame—内部窗格,可以在一个窗口内显示若干个类似于框架的窗口

3.基本控件(JButton、JCombobox、JList、JMenu、JSlider、JTextField)

4.不可编辑信息组件(JLabel、JProgressBar、JToolTip等)

5.可编辑组件(JColorChooser、JFileChooser、Jtabel、JTextArea、JTree等)

二、常用的swing组件和容器

1.JFrame

?顶层容器,默认不可见;默认布局方式为BorderLayout

?构造函数:

●JFrame()

●JFrame(String title)//title 为框架的标题内容

?JFrame常用方法

●setDefaultCloseOperation(int operation)—设置关闭框架的行为

参数operation一般是JFrame. EXIT_ON_CLOSE,表示关闭框架时,

则退出程序

●setSize(int width, int height)—设置框架的大小

●setVisible(boolean b)—设置框架是否可见,默认为false

●getContentPane()—获取顶层容器的内容面板

●add(Component comp)—往内容面板添加组件

●setLayout(LayoutManagermgr)—设置布局方式,默认为

BorderLayout

example:JDialog 和JOptionPane的demo

2.JDialog 和JOptionPane

a)JDialog

?在已有的窗口上创建对话框,可以使用此类创建自定义的对

话框

?构造函数:

?JDialog(Dialog owner, String title, boolean modal)

?JDialog(Frame owner, String title, boolean modal)

owner—指定对话框的父窗口

title—对话框的标题

modal—对话框的模式(true为“有模式对话框”,false

为“无模式对话框”

?JDialog常用方法

?setSize(int width, int height)—设置对话框的大小

?getContentPane()—获取顶层容器的内容面板

?add(Component comp)—往内容面板添加组件

?setLayout(LayoutManagermgr)—设置布局方式,

默认为BorderLayout

b)JOptionPane

?提供一些现成的、各种常用的标准对话框(有模式的对话框)

?JOptionPane类里静态方法众多,但几乎所有静态方法都遵

循showXxxDialog()的形式,如下:

这四种方法的参数都遵循一致的模式:

①ParentComponent:指示对话框的父窗口对象,一般为当前窗口。也可以

为null即采用缺省的Frame作为父窗口,此时对话框将设置在屏幕的正中。

②message:指示要在对话框内显示的描述性的文字

③String title:窗口标题

④Component:在对话框内要显示的组件(如按钮)

⑤Icon:在对话框内要显示的图标

⑥messageType:定义message 的样式,一般可以为如下的值

?ERROR_MESSAGE

?INFORMATION_MESSAGE

?WARNING_MESSAGE

?QUESTION_MESSAGE

?PLAIN_MESSAGE

⑦optionType:定义在对话框的底部显示的选项按钮的集合。一般可以为

?DEFAULT_OPTION

?YES_NO_OPTION

?YES_NO_CANCEL_OPTION

?OK_CANCEL_OPTION。

?当showXxxDialog 方法返回整数时,可能的值为:

?YES_OPTION

?NO_OPTION

?CANCEL_OPTION

?OK_OPTION

?CLOSED_OPTION

3.JLabel

?构造函数;

?JLabel()

?JLabel(String text)

?JLabel(Icon image)

?JLabel(String text, Icon icon, int horizontalAlignment)

其中参数text为JLabel的文字信息,image为JLabel的图标,

horizontalAlignment为文字与图标在水平方向上的对齐方式,常

见的取值有常量 JLabel.LEFT(左对齐),JLabel. CENTER(中对

齐),JLabel. RIGHT(右对齐),

?JLabel常用方法:

?setText(String text)—设置文字信息

?setIcon(Icon image)—设置JLabel的图标

?setHorizontalAlignment(int alignment)—设置文字与图标在水

平方向的对齐方式

?setVerticalAlignment(int alignment)—设置文字与图标在竖直方

向的对齐方式

?setToolTipText(String text)—在JLabel上停留时出现的提示信

4.JTextField 和JPasswordField

?都是用来编辑单行文本,JTextField可以直接看到输入的字符,

JPasswordField将输入的字符表示成”*”

?构造函数:

参数text指定文本编辑框显示的初始文本,columns为文本编辑框的宽度(大于0)。

?常用方法:

getText()—获取编辑框的文本信息(String 类型)

setText(String text)—设置文本信息

setEditable(boolean b)—设置是否可编辑

5.JButton、JCheckBox(复选框)和JRadioButton(单选按钮)

?触击式组件(单击这三个组件,都能触发特定的的事件。)

JButton——命令式事件·

JCheckBox、JRadioButton—选择状态发生变化

?构造函数:

JButton()

JButton(Icon icon)

JButton(String text)

JButton(Stringtext, Iconicon)

参数text为指定组件显示的文本信息,icon为指定组件的图标,

selected指定组件是否被选中

?JCheckBox、JRadioButton常用方法:

setSelected(boolean b)—设置组件的选中状态

isSelected()—判断组件时否被选中

?与ButtonGroup对象配合使用可创建一组按钮,一次只能选择其中的一个按钮。

ButtonGroup提供的一个空的构造方法,使用成员方法add

(AbstractButton b)添加单选按钮(JRadioButton是

AbstractButton的子类)

?如果需要把多个JRadioButton排成一排或者一列,可以创建一个布局为

GridLayout或者BoxLayout的JPanel。

如:JPaneljpanel = new JPanel(new GridLayout(0,1));//排成一列

jpanel.add(JRadioButton);

6.JComboBox(组合框),JList,JTextArea和JScrollPane

?用于显示多行文本的组件

(一)J ComboBox(组合框)

?构造函数:

JComboBox(Object[] items)

参数items为组合框的各个选项

?常用方法:

setEditable(booleanaFlag)—设置组合框是否可以自行输入一行文

本信息,默认为false。当为false时,只能选择组合框中的某个选项

setMaximumRowCount(int count)—设置显示的最大行数

setSelectedIndex(int anIndex)—选择索引第anIndex+1 处的选项

getSelectedIndex()—返回列表中与给定项匹配的第一个选项的下标值

getSelectedItem()—返回当前所选项。

getSelectedObjects()—返回包含所选项的数组。

(二)J List(列表框)

?构造函数:

JList(Object[] listData)

参数listData为列表框的各个选项

?常用方法:

setSelectionMode(int selectionMode)—设置列表的选择模式。

selectionMode常为以下常数:

◆ListSelectionModel.SINGLE_SELECTION - 一次只能选择一

个列表选项

◆ListSelectionModel.SINGLE_INTERVAL_SELECTION - 一次

只能选择一个连续间隔

◆ListSelectionModel.MULTIPLE_INTERVAL_SELECTION –一

次可选择一个或多个选项。此模式是默认设置。

setSelectedIndex(int index)—设置被选中的选项

getSelectedIndex()—返回最小的选择单元的索引

(三)J TextArea (文本区域)

?构造函数;

JTextArea(String text, int rows, int columns)

构造具有指定文本text、rows行columns列的TextArea

7.菜单编写

?相关的类:

通过JMenuBar类(利用setJMenuBar()方法加入窗口中)

JMenu(级联)

JMenuItem(菜单项目)

JCheckBoxMenuItem(选择性的菜单项目)、

JRadioButtonMenuItem(选择性的菜单项目(圆点))。

?编程要点:

a)、产生快捷键

mnuFileNew.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));//快捷键alt+1

b)、添加分割条

mnuFile.addSeparator();

?三、给菜单加上图标

mnuFileNew.setIcon(newImageIcon("new.gif"));

c)、给菜单加上助记符

mnuFile.setMnemonic('F'); //alt+F

d)、要使得多个JRadioButtonMenuItem项目产生单选的效果,可以将它们放入一个ButtonGroup组件中;否则为多选效果

?example:MenuLookDemo.java

8.工具条JToolBar

?在Swing中的窗口工具条是由JToolBar来实现,它也是一种容器并按照

行或列对组件(它们一般为按钮)进行分组。

?缺省时为水平方向但可以使用SwingConstants. HORIZONTAL或者

SwingConstants. VERTICAL来设置其方向。

?构造函数:

?JToolBar() 创建出水平方向的工具条(缺省为HORIZONTAL)。

?JToolBar(int orientation) 创建出指定方向的工具条。

?JToolBar(String name) 创建出指定名称的工具条。

?JToolBar(String name, int orientation) 创建出指定方向和名

称的工具条。

?工具条上的工具按钮的事件编程:

类似于一般的按钮事件编程,可以分别为各个不同的按钮单独进行事件编程。

?编程方法:

?创建出JToolBar对象

?然后采用add(Object)方法将组件(可以为按钮或其它组件)加入

到工具条中。

?最后再将工具条加入到内容面板中

example:T oolBarDemo.java

9.JTabbedPane(选项卡窗格)

?特性:它表现为一组文件夹页,每个文件夹都有标题(如下)

?其内的每个页面为一个JPanel类或者其子类的对象

?构造函数:

publicJTabbedPane(inttabPlacement, inttabLayoutPolicy)

?其中Tabplacement可以是:

?JTabbedPane.TOP(表头在上面)

?JTabbedPane.BOTTOM(表头在下面)

?JTabbedPane.LEFT(表头在左面)

?JTabbedPane.RIGHT(表头在右面)。

?TablayoutPolicy可以是

?JTabbedPane.WRAP_TAB_LAYOUT(表头不产生SCROLL效果)

?JTabbedPane.SCROLL_TAB_LAYOUT(表头产生SCROLL效果)

?编程方法:

●创建出JTabbedPane类的对象;

●调用addTab()方法加入一个页面组件(JPanel或其子类);

●最后将JTabbedPane类的对象加入到顶级容器的

ContentPane中。

example:TabbedPaneDemo.java

跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例

1.1跟我学Java Swing GUI组件技术及应用实例——JTable表格组件及应用实例 1.1.1表格控件JTable 1、JTable表格控件的主要功能 JTable顾名思义就是一个将数据以表格显示的组件,它提供以行和列的方式来显示数据,并且可以拖动列。如下示图为应用JTable表格控件所创建出的数据表格。 JTable的数据选项不仅仅是可以显示字符串,还可以显示Checkbox选择框、下拉列表框或者图片等内容。如下为Sun 公司的Swing 教程中的TableDialogEditoDemo 应用程序的执行结果示图,在该示例的数据表格中显示Checkbox选择框、下拉列表框和图片等内容。

2、JTable类的API功能说明 (1)JTable类的API功能说明 如下示图为JDK API文档中对JTable类的API功能说明的相关信息。 如果需要对数据表格中的表头数据列和数据单元格中的数据列进行定制,则需要通过继承封装表头数据列JTableHeader类或者继承封装数据列的TableColumn类。如下为JTableHeader类和TableColumn类的功能说明。 (2)表头数据列JTableHeader类的功能说明

(3)数据列TableColumn类的功能说明 TableColumn 类封装表示JTable中数据列的所有属性,如宽度、大小可调整性、最小和最大宽度。 3、JTable表格控件中的数据可以以多种不同的方式被选中 (1)选中某一数据行

(2)选中连续的多行数据行

(3)选中不连续的多行数据行

4、JTable类的构造函数定义 可以通过JTable(Object[][] rowData, Object[] columnNames)形式的构造方法创建出数据表格组件,该JTable组件将用来显示一个二维数组rowData 中的值(它是一个行数组),其列名称为columnNames所代表的数组。JTable类的其它形式的构造函数定义如下:

java_swing_入门教程

swing入门教程 swing简介(2009-04-20 23:52:40) U I组件简介 在开始学习Swing之前,必须回答针对真正初学者的一个问题:什么是UI?初学者的答案是“用户界面”。但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级的定义。 所以,我再次提出这个问题:什么是UI?您可能把它定义成您按下的按钮、打字的地址栏、打开和关闭的窗口,等等,这些都是U I 的元素,但是除了在屏幕上看到的这些之外,还有更多都是U I 元素。比如鼠标、键盘、音量、屏幕颜色、使用的字体,以及一个对象相对于另一个对象的位置,这些都包含在U I 之中。实际上,在计算机和用户的交互之中扮演角色的任何对象都是U I 的组成部分。这看起来足够简单,但是您应当惊讶的是,有许多人和大型公司已经为它努力了很多年。实际上,现在有的大学专业的惟一课程就是研究这种交互。Swing的角色 Swing是Java平台的U I ——它充当处理用户和计算机之间全部交互的软件。它实际上充当用户和计算机内部之间的中间人。Swing 到底是如何做这项工作的呢?它提供了处理前面一节中描述的U I 各方面内容的机制: ?键盘:Swing 提供了捕捉用户输入的方法。 ?颜色:Swing 提供改变在屏幕上看到的颜色的方法。 ?打字的地址栏:Swing 提供了文本组件,处理所有普通任务。

音量:Swing 不太擅长。 无论如何,Swing为您提供了创建自己的U I 所需要的所有工具 MVC Swing甚至走得更远一步,在基本的U I 原则之上又放上了一个公共的设计模式。这个设计模式叫做模型-视图-控制器(Model-Vie w-Co ntroller,MVC),它试图“把角色分开”。MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。 有点迷惑?如果我为这个设计模式提供一个现实世界的非技术性示例,它就比较容易了。请想像一次时装秀。把秀场当成U I,假设服装就是数据,是展示给用户的计算机信息。现在,假设这次时装秀中只有一个人。这个人设计服装、修改服装、同时还在T 台上展示这些服装。这看起来可不是一个构造良好的或有效率的设计。 现在,假设同样的时装秀采用MVC 设计模式。这次不是一个人做每件事,而是将角色分开。时装模特(不要与MVC 缩写中的模型混淆)展示服装。他们扮演的角色是视图。他们知道展示服装(数据的)适当方法,但是根本不知道如何创建或设计服装。另一方面,时装设计师充当控制器。时装设计师对于如何在T 台上走秀没有概念,但他能创建和操纵服装。时装模特和设计师都能独立地处理服装,但都有自己的专业领域。 这就是MVC 设计模式背后的概念:让U I 的每个方面处理它擅长的工作。如果您仍然不明白,那么教程后面的示例有望消除您的迷惑——但是在您继续进行的时候,请记住基本的原则:用可视组件显示数据,同时让其他类操纵数据。

JAVA SWING 连接数据库的步骤

Java swing连接数据库的步骤 1.在工程中导入3个jar包,详见(导入Jar包的过程.doc) 2.在类中导入包 a)import java.sql.*; b)import com.microsoft.jdbc.sqlserver.*; 3.声明连接对象,执行语句对象,结果集对象 a)Connection conn=null; b)Statement stmt=null; c)ResultSet rs=null; 4.定义连接字符串 a)final String CLASSFORNAME="com.microsoft.jdbc.sqlserver.SQLServerDriver"; b)final String DBURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=pubs"; c)final String USER="sa"; d)final String PASS=""; 5.创建连接对象 try{ Class.forName(CLASSFORNAME); conn=DriverManager.getConnection(DBURL,USER,PASS); }catch(SQLException e){ System.out.println(e.getMessage()); }catch(ClassNotFoundException ex){ JOptionPane.showMessageDialog(this,"练苦失败"); return; }

6.创建执行语句对象stmt try{ String sql="insert into users values('name1','pass1')"; //上一行代码可以写成下一行的方式,试分析它的作用是什么? //String sql="insert into users values('"+name+"','"+pass+"')"; stmt=conn.createStatement(); stmt.executeUpdate(sql); }catch(SQLException ex1){ } 7.完毕

java swing 组件大全

import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.tree.*; import javax.swing.event.*; import javax.swing.border.*; import javax.swing.table.*; /** * Swing 组件测试程序 * 测试Swing所有组件及其相应的事件 * @author 天翼.李 2003.4.17 晚23:14 * @link https://www.doczj.com/doc/9613463151.html, * @link robococde@https://www.doczj.com/doc/9613463151.html, */ public class SwingT est extends JFrame { /** * 主模块,初始化所有子模块,并设置主框架的相关属性 */ public SwingTest() { // 初始化所有模块 MenuTest menuTest = new MenuTest(); LeftPanel leftPanel = new LeftPanel(); RightPanel rightPanel = new RightPanel(); BottomPanel bottomPanel = new BottomPanel(); CenterPanel centerPanel = new CenterPanel(); // 设置主框架的布局 Container c = this.getContentPane(); // c.setLayout(new BorderLayout()) this.setJMenuBar(menuTest); c.add(leftPanel,BorderLayout.WEST); c.add(rightPanel,BorderLayout.EAST); c.add(centerPanel,BorderLayout.CENTER); c.add(bottomPanel,BorderLayout.SOUTH); // 利用无名内隐类,增加窗口事件 this.addWindowListener(new WindowAdapter() { public void WindowClosing(WindowEvent e)

JavaSwing中处理各组件事件的一般步骤完整版

J a v a S w i n g中处理各组件事件的一般步骤 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

Java Swing中处理各组件事件的一般步骤是: 1.新建一个组件(如JButton)。 2.将该组件添加到相应的面板(如JPanel)。 3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。 4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。 以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。 为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。 首先,我们利用单个监听器来实现该程序。我们定义一个名为Simple1的类来包括所有代码。所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。以下是代码: import .*; import .*; public class Simple1 {

private static JFrame frame;dd(myPanel); (); (true); } } 让我们来看看以上代码是如何工作的。在main方法中,我们定义了一个JFrame,然后将面板Jpanel添加到窗体中,该面板包括两个按钮。相应的变量Frame,button1,button2定义在程序的开头部分。 在程序入口main方法中,首先新建Simple1组件,通过构造器建立用户GUI,定义一个面板Jpanle,,增加两个按钮,然后利用将两个按钮加入到一个活动监听器SimpleLister中,最后,两个按钮添加到面板。当GUI 建立后,我们将面板添加到窗体并显示结果。当用户点击按钮时,程序调用actionPerformed方法,通过if语句来判断是哪一个按钮被点击,然后在对话框中显示相应的内容。 利用一个监听器来处理事件的缺点是,当程序比较复杂时,需要一大串的if 语句来实现,程序代码较难阅读与维护。当然,如果处理的事件较少,这种方式比较简单。 通过使用匿名内部类可以解决上述存在的问题。使用简单的匿名内部类作为addActionListener的变量即可。以下是实现代码:

跟我学Java入门到精通培训教程——利用Eclipse Swing可视化开发实现快闪屏

1.1利用Eclipse Swing可视化开发实现应用程序中的快闪屏 1、新建一个Swing JFrame(代表主窗口) (1)选择File>New>Other... 菜单,然后再选择MyEclipse>Swing>Matisse Form (2)点击Next按钮 输入包名称为com.px1987.javaapplication.swing.matisse,类名称为SplashMainFrame,并选择Swing JFrame类型。

(3)点击“Finish”按钮,将进入可视化设计器视图 2、设置SplashMainFrame窗口的属性 (1)取消标题条及控制按钮

将窗口的undecorated属性设置为true。 (2)不允许改变窗口的大小,设置resizeable为false。 3、定位及设置窗口的大小 在源代码视图中找到该窗口的构造方法,在其中的initComponents初始化函数后面添加如下的代码: public SplashMainFrame() { initComponents(); /** * 获取整个屏幕的尺寸大小 */ Dimension scmSize=Toolkit.getDefaultToolkit().getScreenSize(); /** * 背景大图像的宽和高 */ int nImageWidth=570; int nImageHeight=247;

/** * 设置快闪屏窗口的大小 */ setSize(nImageWidth,nImageHeight); /** * 设置快闪屏窗口在显示屏幕内的居中位置显示 */ setLocation(scmSize.width/2-nImageWidth/2, scmSize.height/2-nImageHeight/2); } 最后为如下的代码状态

java swing常用的9种组件.

需要注意的是,取得文本框中的文本时,使用方法getText(),该方法返回的是一个String类型的对象;而要取得密码框中的文本,使用方法getPassword(),该方法返回的是一个char数组。 例如,创建了一个密码框: JPasswordField txtPwd=new JPasswrodField(20); 设定该密码框的回显字符为'#': txtPwd.setEchoChar('#'); 取得密码框中的内容: char []pwd=txtPwd.getPassword(); 也可以方便地将char数组转化为String类型的对象: String pwdStr=new String(txtP.getPassword()); 3.菜单 (1)菜单也是一种常用的GUI组件,菜单采用的是一种层次结构,最顶层是菜单栏(JMenuBar);在菜单栏中可以添加若干个菜单(JMenu),每个菜单中又可以添加若干个菜单选项(JMenuItem)、分隔线(Separator)或是菜单(称之为子菜单)。 (2)构建应用程序的菜单时,先创建一个菜单栏: JMemuBar menuBar=new JMenuBar(); 通常使用框架的setJMenuBar(JMenuBar aMenuBar)方法将菜单栏置于框架中:frame.setJMenuBar(menuBar); 随后,创建所需要的各菜单并逐个添加到菜单栏中,例如: JMenu menuDBAccount=new JMenu("电表出帐(C)"); ... JMenu menuSysConfig=new JMenu("系统设置(X)"); menuBar.add(menuDBAccount); ... menuBar.add(menuSysConfig); 最后,向各个菜单中添加菜单选项、分隔线或是子菜单,如图所示的系统设置菜单为例: //创建菜单选项或是子菜单 JMenuItem sysConfigItem=new JMenuItem("参数设置(S)..."); JMenu viewMenu=new JMenu("外观设置"); JRadioButtonMenuItem metalItem=new JRadioButtonMenuItem("金属外观"); JRadioButtonMenuItem classicItem=new JRadioButtonMenuItem("传统外观"); JRadioButtonMenuItem modernItem=new JRadioButtonMenuItem("现代外观"); JMenuItem cascadeItem=new JMenuItem("层叠窗口(C)"); JMenuItem iconifyItem=new JMenuItem("排列图标(I)"); //将三个单选按钮添加到一个按钮组 ButtonGroup group=new ButtonGroup(); group.add(metalItem); group.add(classicItem); group.add(modernItem); //构建子菜单 viewMenu.add(metalItem);

java中swing用法

import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; public class FlowLayoutDemo{ private JFrame frame; private JButton button1,button2,button3,button4; public static void main(String[]args){ FlowLayoutDemo that=new FlowLayoutDemo(); that.go(); } public void go(){ frame=new JFrame("Folw Layout");//创建主题实例 Container contenPane=frame.getContentPane();//获得JFamel实例默认的内容窗格,此后可以修改它的布局管理器 contenPane.setBackground(Color.CYAN);//将JFranme实例的背景设置为蓝色 Container contentPane=frame.getContentPane(); contentPane.setLayout(new FlowLayout()); button1=new JButton("OK"); button2=new JButton("Open"); button3=new JButton("Close"); button4=new JButton("点我"); contentPane.add(button1);

(总结)Swing组件的使用

(总结)Swing组件的使用 Swing 的组件与AWT 组件相似,但又为每一个组件增添了新的方法,并提供了更多的高级组件.Swing 的基本组件:1.按钮(JButton): Swing 中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且还可以将多个图像指定给一个按钮。 (1).JButton 常用的构造方法。 JButton(String text):按钮上显示字符。 JButton(Icon icon) :按钮上显示图标。 JButton(String text, Icon icon):按钮上既显示图标又显示字符。 (2).常用方法: b1.setEnabled(false); //使按钮当前不可用 b1.setToolTipText("..."): //设置按钮提示文本 b1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键(3).案例代码: [java] view plain copy print?public class JButtonExample3 extends JPanel implements ActionListener { protected JButton b1, b2, b3; public JButtonExample3() { ImageIcon

leftButtonIcon = createImageIcon("right.gif"); ImageIcon middleButtonIcon = createImageIcon("middle.gif"); ImageIcon rightButtonIcon = createImageIcon("left.gif"); b1 = new JButton("失效中间按钮(D)", leftButtonIcon); b1.setVerticalTextPosition(AbstractButton.CENTER);// 水平中间对齐 b1.setHorizontalTextPosition(AbstractButton.LEADING);// 相当于LEFT b1.setMnemonic(KeyEvent.VK_D);// 将b1邦定alt+D键b1.setActionCommand("disable"); b2 = new JButton("M中间按钮", middleButtonIcon); b2.setVerticalTextPosition(AbstractButton.BOTTOM); b2.setHorizontalTextPosition(AbstractButton.CENTER); b2.setMnemonic(KeyEvent.VK_M);// 将b2邦定alt+M键b3 = new JButton("E激活中间按钮", rightButtonIcon); b3.setMnemonic(KeyEvent.VK_E);// 将b3邦定alt+E键 b3.setActionCommand("enable"); b3.setEnabled(false); // 给1和3添加事件监听b1.addActionListener(this); b3.addActionListener(this); // 设置按钮提示文本b1.setToolTipText("点击这个按钮,

JAVA swing界面实现数据库增删改查

数据库程序设计 大作业 班级:2012级软件外包服务一班学号:201215140117 姓名:。。。 时间:2013-6-19

1.功能描述 1.1 功能简介 用swing做出图形化界面形式,实现数据库的增删改查把员工表跟部门表连接起来,实现数据的增加,删除,修改,查找。 1.2 实现步骤 (1)安装好虚拟机,并在其下确认oracle已安装成功(可以在dos下输入相关命令来检查是否安装成功)。 (2)在网络中心修改pc机上的VMware Network Adapter的IP、子网页码(默认)、网关。 (3)修改虚拟机的IP、网掩码(默认)、网关,确保PC机上的网关和虚拟机的IP一致。(在控制面板——>网络和共享中心——>本地连接3——>属性中,修改IP、网掩码)(4)在PC机的dos命令控制台ping虚拟机的IP,确保正常,能ping通(即将虚拟机内外ping通)。 (5)配置好虚拟机下的oracle的数据库和监听。 (6)在eclipse中编写相关代码,并用jtable实现图形化界面,用以实现与数据库的连接和操作数据库等功能。 (7)在eclipse中导入数据库的驱动。 (8)运行eclipse,查看运行结果。

2. 核心代码 2.1 1.数据库连接 package https://www.doczj.com/doc/9613463151.html,.dbc; import java.sql.Connection; import java.sql.DriverManager;

import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DatabaseConnection { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@192.168.0.128:1521/WFJ"; conn = DriverManager.getConnection(url, "hr", "hr"); stmt = conn.createStatement(); String sql = "select * from departments"; rs = stmt.executeQuery(sql); while (rs.next()) { System.out.print(rs.getInt("department_id")); System.out.print("\t"); System.out.print(rs.getString("department_name")); System.out.print("\t"); System.out.print(rs.getInt("manager_id")); System.out.print("\t"); System.out.print(rs.getInt("location_id")); System.out.println(); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) {

Java Swing中处理各组件事件的一般步骤

Java Swing中处理各组件事件的一般步骤是: 1.新建一个组件(如JButton)。 2.将该组件添加到相应的面板(如JPanel)。 3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。 4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。 以上步骤我们可以用多种方法实现。但人们通常用二种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。 为了说明如何使用上述三种方法实现事件的处理方法,我们建立一个简单的应用程序。该程序界面有两个按钮,当用户点击相应的按钮,就会弹出一个对话框显示相应的内容。通过这个简单程序,你可以实现自己更多、更复杂的用户界面程序。 首先,我们利用单个监听器来实现该程序。我们定义一个名为Simple1的类来包括所有代码。所有的用户行为(如点击按钮)由一个监听器SimpleListenner中的actionPerformed方法来处理。以下是代码: import java.awt.*; import javax.swing.*; public class Simple1 {

private static JFrame frame; // 定义为静态变量以便main使用 private static JPanel myPanel; // 该面板用来放置按钮组件 private JButton button1; // 这里定义按钮组件 private JButton button2; // 以便让ActionListener使用 public Simple1() // 构造器, 建立图形界面 { // 新建面板 myPanel = new JPanel(); // 新建按钮 button1 = new JButton("按钮1"); // 新建按钮1 button2 = new JButton("按钮2"); SimpleListener ourListener = new SimpleListener(); // 建立一个actionlistener让两个按钮共享 button1.addActionListener(ourListener); button2.addActionListener(ourListener); myPanel.add(button1); // 添加按钮到面板 myPanel.add(button2); } private class SimpleListener implements ActionListener { public void actionPerformed(ActionEvent e) {

Swing组件的各种面板(JRootPane根面板,JLayeredPane层面板等)

主要参考文现: [美]Herbert Schildt 著 鄢爱兰 鹿江春译 《java 参考大全 J2SE 》 清华大学出版社 2006年1月 孙卫琴 《Java 面向对象编程》 出版社及日期不详 java API 开发人员文档 本文作者:黄邦勇帅 本文的说明:本文主要讲解了对大学初学Swing 时对根面板JRootPane ,内容面板containPane ,层面板JLayeredPane ,玻璃面板glassPnae 的困惑,本文对各种面板作了详尽的讨论,让读者能真正的明白根面板,内容面板,层面板到底是什么,他们在程序中的作用,以及他们之间的关系,透明性,可见性,作了讲解。本文内容完全属于个人见解与参考文现的作者无关,其中难免有误解之处,望指出更正。 Swing 组件的各种面板(JRootPane 根面板,JLayeredPane 层面板等) 第一部分:JFrame 中各面板间的关系,透明性与可见性问题 注:在某些地方把面板也叫做窗格,比如根面板,也叫根窗格,层面板也叫分层窗格等。注意窗格与窗体是不一样的。 在Swing 中的JFrame 窗体与AWT 中的Frame 窗体有一些不同。JFrame 由他的窗体本身加上其上的JRootPane 根面板,JLayeredPane 层面板,containPane 内容面板,glassPane 玻璃面板,JMenuBar 菜单栏(可选,不包括在内)四部分组成。其中根面板在JRootPane 类中实现,层面板在JLayeredPane 类中实现,他们都是JComponent 的子类。而containPane 和glassPane 没有专门对应的类。 1、各种面板(或称窗格)的关系及作用: JRootPane 根面板:该面板是在JFrame 窗体创建时就默认添加进来的,是所有其他面板的载体或父级,他覆盖窗体的除标题栏和边条之外的整个表面。根面板默认是不可见的。根面板负责管理其他面板(层面板,玻璃面板),如使其他面板覆盖整个JFrame 窗体等。 JLayeredPane 层面板:该面板是其他所有面板的父级,在JRootPane 面板的上面,他再次覆盖窗体的整个表面,内容面板和JMenuBar 菜单栏被添加到层面板上。当添加了菜单栏时,菜单栏被添加到JLayeredPane 面板的顶部,剩下的部分被内容面板填充。层面板是分很多层的,每一层使用一个相应的数字来表示,而内容面板就位于层面板中的某一层,在后面的内容中我们可以看到层面板可以让你设计出相互重叠的内部窗体,层面板将负责管理各种内部窗体的叠放问题,对于层面板的每一层都相当于是一个容器,因此可以直接向层面板中添加组件。层面板的内容后面会作具体介绍。 containPane 内容面板:由层面板的介绍可知,内容面板是层面板中的某一层。默认的内容面板是不透明的,而且是一个JPane 对象。该面板在窗体中起着工作区的作用,当我们向窗体添加组件时就应该添加到这一层上,而不能像AWT 那样直接添加到窗体上,若你那样做了,实际上该组件也是被添加到内容面板上的,若窗体未设置内容面板,则组件无法显示。比如要添加按钮jb 则正确的方式为,Container p=jframe.getContentPane(); p.add(jr); 或jframe.getContentPane().add(jr); 其中getContentPane()是JFrame 类中的方法,该方法将反回内容面板的引用,这是访问默认的内容面板的方法,因为默认的内容面板没有特定的名字,因此应使用该方法。 glassPane 玻璃面板:该面板总是存在的,而且他位于最上面,默认情况下玻璃面板是不可见的,玻璃面板用于接收鼠标事件和在其他组件上绘图。 2、各面板中使用的布局管理器: 在内容面板上使用的布局管理器默认是BorderLayout 。 在根面板上使用的布局管理器是一个自定义的LayoutManager(布局管理器),他的作用是布局根面板之上的其他面板。很明显如果你要向根面板中添加组件就应使用setLayout 方法为其设置合适的布局管理器或自已设定组件的大小和显示

Swing组件大全

一抛砖引玉 本文指在利用一个小程序”Swing 组件大全”来引导大家学习Java这门语言,熟悉Ja va Swing的各个组件。并在学习过程中参考作者设计这一程序的方法和思想,最终形成自己的思维方式和学习方式。你能举一返三是作者最开心的事情。小程序演示了Java Swing 大部分组件。最后附上了全部代码及详细的注释说明。希望本文能对大家学习Java有所帮助。 随着Java风潮席卷国内,学习Java的方法和路径越来越多。而在大量的书本前,在J ava庞大的类库前大大家都有点迷失方向的感觉,是学J2EE,J2ME还是。。。。。。然而所有的这些都或多或少的离不开J2SE。万丈高楼平地起。J2SE是整个Java的基础,学好了这个对Java的各个方向都是很有利的。而学习J2SE的最初点就在界面设计,因为界面编程是你来感觉最直接的手段,是提高大家编程兴趣的很好开始,因为你写完程序编译后可马上看到自己的成果。而不像后台编程做完了都感受不到效果。而好的界面也是你测试你其他程序的基础。 界面设计!不就是拖拉操作吗?如果是VB,VC等可视化的编程,的确只是一些拖拉操作,由于Java语言的设计中所有的东西都是程序代码,在Java中如果想要设计一个好的界面,可不是简单的拖拉操作能完成的。即使使用了如JBuilder这么强大的可视化工具,你也得亲自动手写一些界面设计代码才能很好的完成你的任务。如果你能在此基础上理解Java界面设计的思想,对你学习这门语言将有莫大的帮助。 Java界面设计主要涉及Awt,Swing两大类库,Swing是Awt的扩展和功能加强。下面我们就以Swing为基础来说说整个Java的界面设计。 二感受效果 在开始之前,让我们看看这篇文章要达到的效果,有了目标和成果才有学习的兴趣,起码我是这样认为和学习的。如下图所示,这就是我们设计的界面,它包括了Swing中大部分

swing组件总结认识

JFrame是主窗口,它和JDialog,JApplet的地位并列。但是,一个JFrame可以添加JDialog和JApplet进去它的内容面板,而反过来就不行。 2、JLabel JLabel是一标签,在它的文本里嵌入html标签,可以简单实现一个超链接组件 3、JTextField 一个文本框 4、JTextArea 文本区域,与文本框不同的是它是多行的 5、JPasswordField 6、JPanel 一个面板.一般用作控制组件的布局. 7、JCheckBox 复选框 8、JRadioButton 单选按钮.单选按钮要用到ButtonGroup.添加到同一个ButtonGroup的单选按钮表示在它们之间只可选其一.不同ButtonGroup里的单选按钮相互之间的选择不受影响. 9、JScrollPane JScrollPane由四个角,两个头部,和一个视口组成.四个角和两个头部都是由Component组成.四个角并不是总是显示出来的.左上角只有当两个头部同时存在才显示,右下角只有两个滚动条同时出现才会出现.其他两个角可同理知道什么时候会出现.视口是显示内容的部分,由JViewport对象表示.而真正显示的内容,由JV iewport的view表示 10、JList JList是一个列表.这里将首次引入Model这个概念,中文翻译是模型,不好理解,其实就是数据的意思.JList用ListModel保存它的数据.简单应用可以用实现了ListModel的AbstraceListModel的子类DefaultListModel来保存它的数据(尽管它的名字有Default,但是只有你使用了它创建JList,它才存在.即如果你没有用DefaultListModel创建JList,则你用getModel()返回的ListModel不能强制转换为DefaultListModel). 11、JComboBox 组合框和JList很相似,它们都是用ListModel来保存数据.默认它是使用实现了ListModel的子接口ComboBoxModel的DefaultComboBoxModel来保存数据的.与JList的情况不同,一个JComboBox总是有一个Model来保存数据的,而JList则不然. 12、JFileChooser JFileChooser代表一个打开/保存文件对话框 13、JColorChooser 一个颜色选择器.它的构造方法有: JColorChooser(),JColorChooser(Color initialColor),JColorChooser(ColorSelectionModel model) 创建了对象以后,可以调用将它添加到JFrame,JPanel等其他容器里面. 14、JSlider JSlider是一个滑动条.其实它还是比较容易使用的 15、JLayeredPane JFrame,JApplet,JDialog,JInternalFrame其实是由好几部分组成的 16、JInternalFrame JFrame不能添加JFrame到自已的内容面板.那么,如何实现多文档程序呢?用JInternalFrame

swing 组件和容器——java swing 组件技术(中)

swing 组价和容器——java swing 组件和技术(中) 一、swing组件和容器概览 1.顶层容器(JFrame,JDialog,JApplet) JFrame—框架,主要用来设计应用程序的图像界面 JDialog—对话框,通常用来设计具有依赖关系的窗口 JApplet—小应用程序,主要用来设计嵌入网页中运行的java程序2.一般容器 普通容器(JPanel、JScrollPane、JToolbar、JSplitPane、JTabbedPane) JPanel—面板,通常只有背景颜色的普通容器 JScrollPane—滚动窗格,具有滚动条 JToolbar—工具条,通常将多个组件排成一排或者一列 JSplitPane—分裂窗格,用来装两个组件的容器 JTabbedPane—选项卡窗格,允许多个组件共享相同的界面空间

专用容器(JLayeredPane、JRootPane 、JInternalFrame) JLayeredPane—分层窗格,给窗格增加了深度的概念 JRootPane—根窗格,一般是自动创建的容器 JInternalFrame—内部窗格,可以在一个窗口内显示若干个类似于框架的窗口 3.基本控件(JButton、JCombobox、JList、JMenu、JSlider、JTextField) 4.不可编辑信息组件(JLabel、JProgressBar、JToolTip等) 5.可编辑组件(JColorChooser、JFileChooser、Jtabel、JTextArea、JTree等) 二、常用的swing组件和容器 1.JFrame ?顶层容器,默认不可见;默认布局方式为BorderLayout ?构造函数: ●JFrame() ●JFrame(String title)//title 为框架的标题内容 ?JFrame常用方法 ●setDefaultCloseOperation(int operation)—设置关闭框架的行为 参数operation一般是JFrame. EXIT_ON_CLOSE,表示关闭框架时, 则退出程序 ●setSize(int width, int height)—设置框架的大小 ●setVisible(boolean b)—设置框架是否可见,默认为false ●getContentPane()—获取顶层容器的内容面板

Javaswing连接数据库的步骤(精)

Java swing 连接数据库的步骤 1.在工程中导入3个jar包,详见(导入Jar包的过程.doc 2.在类中导入包 aimport java.sql.*; bimport com.microsoft.jdbc.sqlserver.*; 3.声明连接对象,执行语句对象,结果集对象 aConnection conn=null; bStatement stmt=null; cResultSet rs=null; 4.定义连接字符串 afinal String CLASSFORNAME = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; bfinal String DBURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=pubs"; cfinal String USER="sa"; dfinal String PASS=""; 5.创建连接对象 try { Class.forName(CLASSFORNAME;

conn=DriverManager.getConnection(DBURL,USER,PASS; } catch (SQLException e { System.out.println(e.getMessage(; } catch (ClassNotFoundException ex { JOptionPane.showMessageDialog(this,"练苦失败"; return; } 6.创建执行语句对象stmt try { String sql = "insert into users values('name1','pass1'"; //上一行代码可以写成下一行的方式,试分析它的作用是什么? //String sql = "insert into users values('" +name+ "','"+pass+"'"; stmt = conn.createStatement(; stmt.executeUpdate (sql; } catch (SQLException ex1 { } 7.完毕

相关主题
文本预览
相关文档 最新文档