swing边框设置
- 格式:docx
- 大小:48.65 KB
- 文档页数:2
JavaSwing中的⽂本框(JTextField)与⽂本区(JTextArea)使⽤实例⼀:JTextField的(⽂本框)使⽤:JTextField 是⼀个轻量级组件,它允许编辑单⾏⽂本。
1.JTextField的常⽤构造⽅法:JTextField() 构造⼀个新的 TextField。
JTextField(int columns) 构造⼀个具有指定列数的新的空 TextField。
JTextField(String text) 构造⼀个⽤指定⽂本初始化的新TextField。
JTextField(String text, int columns) 构造⼀个⽤指定⽂本和列初始化的新TextField。
2.JTextField的常⽤⽅法:SetText(string) 设置⽂本域中的⽂本值GetText()返回⽂本域中的输⼊⽂本值getColumns()返回⽂本域的列数setEditable(Boolean) 设置⽂本域是否为只读状态3.JTextField的使⽤⽰例:复制代码代码如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class JTextFieldDemo1 {JFrame jf;JPanel jp;JTextField jtf1,jtf2,jtf3,jtf4;public JTextFieldDemo1() {jf = new JFrame("TextField案例");Container contentPane = jf.getContentPane();contentPane.setLayout(new BorderLayout());jp = new JPanel();jtf1 = new JTextField();jtf2 = new JTextField(10);jtf3 = new JTextField("指定⽂本内容");jtf4 = new JTextField("指定内容+指定长度(只读状态)",30);jtf3.setEnabled(false);jtf4.setFont(new Font("谐体",Font.BOLD|Font.ITALIC,16));//设置⽂本的⽔平对齐⽅式jtf4.setHorizontalAlignment(JTextField.CENTER);jp.add(jtf1);jp.add(jtf2);jp.add(jtf3);jp.add(jtf4);contentPane.add(jp);jf.pack();jf.setLocation(400, 200);jf.setVisible(true);jf.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});}public static void main(String[] args) {new JTextFieldDemo1();}}效果图:⼆:JTextArea(⽂本区)的使⽤:1.JTextArea的常⽤构造⽅法:JTextArea() 构造新的 TextArea。
java的jframe用法Java的Swing库提供了丰富的图形用户界面(GUI)组件,使得开发桌面应用程序变得更加简单。
在这些组件中,JFrame是用于创建窗口的主要组件。
本文将详细介绍JFrame的用法。
一、创建JFrame对象要创建一个JFrame对象,只需使用JFrame类的一个构造函数。
例如,以下代码将创建一个默认大小的窗口:```javaimport javax.swing.JFrame;public class MyFrame extends JFrame {public static void main(String[] args) {JFrame frame = new JFrame();}}```二、设置窗口属性JFrame对象提供了许多方法来设置窗口的属性。
以下是一些常用的方法:1. setTitle(String title):设置窗口的标题。
2. setSize(int width, int height):设置窗口的大小。
3. setLocation(int x, int y):设置窗口的初始位置。
4. setDefaultCloseOperation(int closeOperation):设置窗口关闭时执行的操作。
默认值为JFrame.DISPOSE_ON_CLOSE,表示窗口被销毁。
还可以设置为JFrame.HIDE_ON_CLOSE,表示窗口被隐藏。
5. setVisible(boolean visible):设置窗口是否可见。
默认值为true,表示窗口在创建后立即显示。
以下是一个简单的示例:```javaimport javax.swing.JFrame;public class MyFrame extends JFrame {public static void main(String[] args) {JFrame frame = new JFrame();frame.setTitle("My Frame");frame.setSize(400, 300);frame.setLocation(300, 200);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setVisible(true);}}```三、添加组件到JFrameJFrame可以容纳其他Swing组件,如按钮、文本框、标签等。
2. Swing基础2.1. 什么是Swing2.1.1. 什么是SwingSwing是JDK提供的一整套 GUI(Graphical User Interface)图形用户界面API。
通过Swing可以构建平台无关的桌面应用程序。
如下图-2所示为Swing中包含的内容:图 -22.2. 容器2.2.1. JFrameJFrame用于封装窗体,一个JFrame对象用于实现一个窗体,创建窗口,包含边框、标题和用于关闭和图标化窗口的按钮;实际应用中,通常采用继承JFrame的方式,定义自己的窗体。
参见如下代码:1.public class LoginFrame extends JFrame {2.public LoginFrame(){3.setSize(350,220);// 设置窗口大小4.// 设置关闭窗口操作为退出程序5.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);6.setResizable(false);// 设置窗体是否可调大小7.setTitle("登录系统");// 设置窗体标题栏文字8.setLocation(100,100);// 设置窗口的位置9.}10.}在main方法中,声明如下语句,则会出现如图-3所示的效果:1.LoginFrame loginFrame =new LoginFrame();2.loginFrame.setVisible(true);图 -32.2.2. JPanelJPanel对象表示“面板”,用于将较小的轻量级组件组合在一起; JFrame 有一个用于盛放组件的“内容面板”,通常可以将其设置为JPanel对象。
JPanel的使用参见下面的代码:1.public class LoginFrame extends JFrame {2.public LoginFrame(){3.………4. JPanel panel =new JPanel();5. panel.setBackground(Color.BLUE);6.// 设置Frame对象的内容面板7.setContentPane(panel);8.}9.}添加好上述3句代码后,程序的运行结果如图-4所示:图 -42.3. 组件2.3.1. 添加常用组件在Swing中,按钮、文本框、标签等都有特定的类与之对应,称之为“组件”;想将其添加到容器中,需要通过调用容器(JFrame或JPanel)的add方法。
JFrame(框架)中添加和设置JPanel(面板)的方法Swing 程序用JFrame 对象实现了它们的窗口。
JFrame 类是AWT Frame 类的一个子类。
它还加入了一些Swing 所独有的特性。
与Frame 的使用十分相似。
唯一的区别在于,你不能将组件加入到JFrame中。
你可以或者将组件加入到JFrame 的content pane(内容面板) 中,或者提供一个新的content pane(内容面板)。
面板与顶层容器的不同点:面板不能独立存在,必须被添加到其他容器内部(面板可以嵌套)。
JFrame 有一个 Content Pane,窗口能显示的所有组件都是添加在这个Content Pane 中。
JFrame 提供了两个方法:getContentPane 和setContentPane 就是用于获取和设置其Content Pane 的。
对JFrame添加组件有两种方式:1)用 getContentPane ()方法获得JFrame的内容面板,再对其加入组件:frame. getContentPane ().add(childComponent)2)建立一个Jpanel或JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:JPanel contentPane = new JPanel();……//把其它组件添加到Jpanel中;frame.setContentPane(contentPane);//把contentPane对象设置成为frame的内容面板实例程序:[java] view plain copyprint?1.import java.awt.*;2.import javax.swing.*;3.4.public class JFrameWithPanel {5.6.public static void main(String[] args) {7.8.JFrame frame = new JFrame("Frame With Panel");9.Container contentPane = frame.getContentPane();10.contentPane.setBackground(Color.CYAN); // 将JFrame 实例背景设置为蓝绿色11.JPanel panel = new JPanel(); // 创建一个JPanel的实例12.panel.setBackground(Color.yellow); // 将JPanel的实例背景设置为黄色13.JButton button = new JButton("Press me");14.panel.add(button); // 将JButton实例添加到JPanel中15.16.contentPane.add(panel, BorderLayout.SOUTH); // 将JPanel实例添加到JFrame的南侧17.frame.setSize(300, 200);18.frame.setVisible(true);19.}20.}截图:。
java titledborder用法摘要:1.Java titledborder 概述2.titledborder 的用法a.构造函数b.常用方法c.事件处理3.titledborder 应用实例a.创建一个简单的titledborder 实例b.创建一个具有图标的titledborder 实例c.创建一个可拖动的titledborder 实例4.titledborder 与其他border 组件的比较5.总结与展望正文:Java titledborder 是Java Swing 中一种特殊的border 组件,主要用于在窗口或容器中添加标题。
它继承自javax.swing.border.Border,可以与JFrame、JDialog、JPanel 等容器配合使用,提供了一种灵活的标题显示方式。
1.Java titledborder 概述Java titledborder 是Java Swing 中的一个重要组件,继承自javax.swing.border.Border,主要用于在窗口或容器中添加标题。
它可以与JFrame、JDialog、JPanel 等容器配合使用,提供了一种灵活的标题显示方式。
2.titledborder 的用法titledborder 提供了多种构造函数和方法,以满足不同场景下的需求。
(1) 构造函数titledborder 有四个构造函数,分别为:titledborder(String title)titledborder(String title, boolean isTitleAtTop)titledborder(String title, boolean isTitleAtTop, Border border)titledborder(String title, boolean isTitleAtTop, Border border, Color titleColor)其中,title 表示标题文本,isTitleAtTop 表示标题是否位于顶端,border 表示标题边框,titleColor 表示标题颜色。
swing jframe的用法(一)Swing JFrame用法详解介绍Swing是Java的一个GUI工具包,提供了一系列的组件用于创建用户界面。
JFrame是Swing中用于创建顶层窗口的类,它提供了一些方法和属性来自定义和管理窗口的外观和行为。
基本用法以下是一些使用Swing JFrame的基本用法,可以作为快速入门的参考:•创建一个空的JFrame对象:JFrame frame = new JFrame();•设置JFrame的标题:("My JFrame");•设置JFrame的大小:(500, 300);•设置Jframe窗口在屏幕上的位置:(null);•设置JFrame的关闭操作:(_ON_CLOSE);•添加其他组件到JFrame中:(component);•显示JFrame:(true);设置布局管理器布局管理器用于控制组件在容器中的位置和大小。
Swing提供了几种常用的布局管理器可以选择,如FlowLayout、BorderLayout和GridLayout等。
以下是设置布局管理器的用法:•使用FlowLayout布局管理器:(new FlowLayout());•使用BorderLayout布局管理器:(new BorderLayout());•使用GridLayout布局管理器:(new GridLayout(rows, columns));添加事件监听器Swing提供了一系列的事件监听器接口,用于对用户操作做出响应。
可以通过添加事件监听器来实现对JFrame中组件的交互响应。
以下是添加事件监听器的用法:•添加ActionListener监听器:(new ActionListener() { ... });•添加MouseListener监听器:(new MouseListener() { ... });•添加KeyListener监听器:(new KeyListener() { ... });自定义JFrame外观可以通过一些方法和属性来自定义JFrame的外观,以下是一些常用的自定义方法和属性:•设置JFrame的背景颜色:().setBackground();•设置JFrame的字体:(new Font("Arial", , 12));•设置JFrame的边框:().setBorder(());总结本文介绍了一些Swing JFrame的常用用法,涵盖了基本使用、布局管理器、事件监听器和外观自定义等方面。
Swing框架中是指Component,Model,UI delegate个Renderer。
Swing 直接调用Java2D来实现组件的绘制!这与AWT或者SWT都是不同的。
当然swing是建立在AWT基础之上的,比如一些等层容器都是直接使用AWT实现的,Java 2D API是平台独立的。
Swing模型和渲染器Swing使用的是变体的MVC架构,即Model-Component-UI Delegate。
尽量使用批处理操作,尽量减少触发事件的数量!当初始化或者需要完全替换模型的内容时,考虑重新生成模型,不要使用已经存在的模型,已存在模型上已经保持了很多的侦听器,新生成的模型没有侦听器,这样避免了不必要的处理函数的调用。
触发事件数量严重影响你的程序启动时间,也会影响打开对话框和相似操作的时间。
Swing框架之ComponentSwing 的基础体系结构中的四大基本对象 Component 、 Model 、 UI Delegate 以及Renderer都值得详细解释。
Swing 的树状组件结构(虽然这是用户界面工具通有的特征)也值得详细解释,因为这是完成某些复杂 Swing 组件,尤其像 JTable 、JTree 、 JList 和 JComboBox 这种复杂组件中编辑功能得关键。
此外, Swing / AWT 的事件模型如 Event Dispatching 和Propagation 和事件处理线程模型也需要详细解释,理解这部份是编写高效率Swing 界面的关键。
Component 在 Swing 的 MVC 模型中担任 Controller 的角色,同时它也是Swing API 中代表具体组件的对象。
Component 在 Swing 中对外负责提供 API 接口,对内负责协调控制 Model 和 UI Delega te(有时可能还包括 Renderer )的操作,可以说是整个 Swing 结构的中心角色。
当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。
JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。
下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。
代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。
这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。
Java代码1public static void addComponentsToPane(Container pane) {。
}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。
4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。
16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。
设置页面边框及方法在网页设计中,页面边框是一个非常重要的元素,它可以帮助页面更加清晰地呈现内容,增强页面的整体美观度。
在本文中,我们将讨论如何设置页面边框以及一些常用的方法。
一、设置页面边框的基本方法。
1. 使用CSS样式表。
在网页设计中,我们通常使用CSS样式表来设置页面的样式和布局。
要设置页面边框,我们可以使用CSS的border属性。
border属性有三个值,分别是border-width(边框宽度)、border-style(边框样式)和border-color(边框颜色)。
例如,我们可以使用以下代码来设置一个红色的边框:```css。
div {。
border: 1px solid red;}。
```。
这个代码将会给所有的div元素添加一个1像素宽的红色实线边框。
2. 使用HTML的border属性。
除了使用CSS样式表,我们还可以直接在HTML标签中使用border属性来设置边框。
例如,我们可以使用以下代码来给一个图片添加一个2像素宽的黑色边框:```html。
<img src="example.jpg" border="2">。
这个代码将会给这个图片添加一个2像素宽的黑色边框。
3. 使用JavaScript。
除了CSS和HTML,我们还可以使用JavaScript来设置页面边框。
通过JavaScript,我们可以在页面加载完成后动态地添加、修改或删除页面的边框。
例如,我们可以使用以下代码来在页面加载完成后给所有的p元素添加一个1像素宽的蓝色边框:```javascript。
window.onload = function() {。
var paragraphs = document.getElementsByTagName('p');for (var i = 0; i < paragraphs.length; i++) {。
说来惭愧,使用Swing快2年了,一直没有深入研究Swing中著名的布局管理器GridBagLayout,说他著名是因为他布局灵活,可以适用各种复杂的布局要求,当然也因为他是著名的复杂,这次由于过几天一次重要的面试,“迫使”我不得不好好研究一下(哈哈,其前太懒了,以后一定多注意。
先来分享一下我的学习成果,对一些重要参数进行说明:1. gridx,gridy 设置组件的位置:其实就是组件行列的设置,注意都是从0开始的,比如 gridx=0,gridy=1时放在0行1列。
2.gridwidth,gridheight—设置组件跨越的行列,默认值为1;GridBagConstraints.REMAINDER常量,代表此组件为此行或此列的最后一个组件,会占据所有剩余的空间。
3. weightx,weighty——用来设置窗口变大时,各组件跟着变大的比例。
比如组件A的weightx=0.5,组件B的weightx=1,那么窗口X轴变大时剩余的空间就会以1:2的比例分配给组件A和B.4.anchor —当组件空间大于组件本身时,要将组件置于何处。
有CENTER (默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、WEST、NORTHWEST选择。
5.insets ——设置组件之间彼此的间距。
它有四个参数,分别是上,左,下,右,默认为(0,0,0,0)。
好了,先看一下左右选择框的实现吧:import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.DefaultListModel;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;public class MyFrame extends JFrame {JPanel mainPanel = new JPanel();JButton add = new JButton();JButton left = new JButton();JButton right = new JButton();JLabel label = new JLabel();JTextField field = new JTextField();DefaultListModel leftModel = new DefaultListModel(); DefaultListModel rightMOdel = new DefaultListModel(); JList leftList = new JList(leftModel);JList rightList = new JList(rightMOdel);JPanel left_Right_Panel = new JPanel();public MyFrame() {this.setTitle("test");this.setPreferredSize(new Dimension(600, 400)); this.initComponent();this.addData();this.setVisible(true);this.pack();}/*** 初始化组件*/private void initComponent() {label.setText("添加选项:");add.setText("添加");leftList.setPreferredSize(new Dimension(150, 150));rightList.setPreferredSize(leftList.getPreferredSize());left.setText("左");right.setText("右");mainPanel.setBorder(BorderFactory.createTitledBorder("左右选择框"));mainPanel.setLayout(new GridBagLayout());GridBagConstraints c = new GridBagConstraints();c.gridx = 0; // 0行0列c.gridy = 0;c.gridwidth = 1;c.gridheight = 1;c.fill = GridBagConstraints.HORIZONTAL;c.weightx = 0;c.weighty = 0;mainPanel.add(label, c);c.gridx++;c.weightx = 1;mainPanel.add(field, c);c.gridx++;c.weightx = 0;c.gridwidth = 1;c.gridheight = 1;// c.fill = GridBagConstraints.HORIZONTAL;mainPanel.add(add, c);c.gridx = 0;c.gridy = 1;c.weightx = 1;c.weighty = 1;c.gridwidth = 2;c.gridheight = 2;c.fill = GridBagConstraints.BOTH;mainPanel.add(leftList, c);c.gridx = 2;c.gridy = 1;c.gridwidth = 1;c.gridheight = 1;c.weightx = 0;c.weighty = 0.5;c.anchor = GridBagConstraints.SOUTH;c.fill = GridBagConstraints.HORIZONTAL;mainPanel.add(left, c);c.gridx = 2;c.gridy = 2;c.anchor = GridBagConstraints.NORTH;c.fill = GridBagConstraints.HORIZONTAL;mainPanel.add(right, c);c.gridx = 3;c.gridy = 1;c.gridwidth = 1;c.gridheight = 2;c.weightx = 1;c.weighty = 1;c.fill = GridBagConstraints.BOTH;mainPanel.add(rightList, c);this.getContentPane().add(mainPanel);}private void addData() {add.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubaddItem();}});left.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubleftItem();}});right.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubrightItem();}});}/*** 增加项*/private void addItem() {if (field.getText() != null&& !field.getText().equals("")) {((DefaultListModel) leftList.getModel()).addElement(field.getText()); field.setText("");}}/*** 左移项*/private void leftItem() {if (rightList.getSelectedIndex() != -1) {Object o = rightList.getSelectedValue();((DefaultListModel)rightList.getModel()).remove(rightList.getSelectedIndex());((DefaultListModel)leftList.getModel()).addElement(o);}}/*** 右移项*/private void rightItem() {if (leftList.getSelectedIndex() != -1) {Object o = leftList.getSelectedValue();((DefaultListModel)leftList.getModel()).remove(leftList.getSelectedIndex());((DefaultListModel)rightList.getModel()).addElement(o);}}public static void main(String args[]) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (UnsupportedLookAndFeelException e) {// TODO Auto-generated catch blocke.printStackTrace();}MyFrame frame = new MyFrame();}}。
java jpanel方法Java JPanel方法JPanel是Java Swing中的一个容器类,可以用来组织和布局其他Swing组件。
在本文中,我们将介绍如何使用Java JPanel方法来创建和管理JPanel。
1. 创建JPanel对象要创建一个JPanel对象,可以使用以下代码:```JPanel panel = new JPanel();```这将创建一个空白的JPanel对象。
如果需要设置面板的大小或布局管理器,则可以使用以下代码:```JPanel panel = new JPanel();panel.setPreferredSize(new Dimension(200, 200)); // 设置面板大小panel.setLayout(new FlowLayout()); // 设置布局管理器```2. 添加组件到JPanel要将Swing组件添加到JPanel中,可以使用以下代码:```panel.add(component);```其中component是要添加的Swing组件对象。
例如,要将一个标签和一个按钮添加到面板中,可以使用以下代码:```JLabel label = new JLabel("Hello World");JButton button = new JButton("Click Me");panel.add(label);panel.add(button);```3. 设置背景颜色要设置JPanel的背景颜色,可以使用以下代码:```panel.setBackground(Color.RED);```其中Color.RED是所需的颜色。
您也可以使用RGB值或预定义的常量来指定颜色。
4. 添加边框要为面板添加边框,请使用以下代码:```panel.setBorder(BorderFactory.createLineBorder(Color.BLACK)); ```这将在面板周围创建一条黑色线条作为边框。
JavaSwing使⽤总结(转载)随笔转载⾃:地址:1. GUI编程引⾔以前的学习当中,我们都使⽤的是命令交互⽅式: 例如:在DOS命令⾏中通过javac java命令启动程序.软件的交互的⽅式: 1. 命令交互⽅式 图书管理系统 2. 图形交互⽅式 ava提供了专业的API⽤于开发图形⽤户界⾯ GUI--> Graphic User Interface 将要了解GUI API的框架结构,以及GUI组件以及组件之间的关系,容器和布局管理器,颜⾊,字体等.2. GUI的分类2.1. AWT Java1.0版本的图形⽤户界⾯库,设计⽬标是帮助程序员编写在所有平台上都能良好表现的GUI程序。
为了实现这个⽬标Java1.0提供了抽象窗⼝⼯具集(AWT),但是这个⽬标并没有达到。
AWT在所有的系统上表现都不好。
因为:最初版本的AWT是在⼀个⽉内构思,设计和实现的(Think in Java )。
Abstract Window Toolkit 抽象窗⼝⼯具集 Java将图形⽤户界⾯相关的类捆绑在了⼀起,放在了⼀个称之为抽象窗⼝⼯具集的库中.AWT适合开发简单的图形⽤户界⾯,并不适合开发复杂的GUI项⽬. 位于: java.awt.* 中,定义了很多的组件类,开发者可以直接创建对象加以使⽤ 缺点: 所有的图形界⾯都依赖于底层的操作系统,容易发⽣于特定平台相关的故障. AWT调⽤本地系统资源⽣成图形化界⾯, 依赖本地平台. 1.02.2. SwingSUN公司对AWT进⾏了升级,基于AWT,推出了⼀种更稳定,更通⽤和更灵活的库.称之为Swing组件库(Swing component)。
既然都是⽤于GUI设计的组件库,那么为了区分Swing组件类和对应的AWT组件类,Swing组件类都已字母J为前缀.位于:javax.swing.* 中,提供了和AWT中等同的所有的组件类,但是类名的前⾯多加了⼀个J.SWING可以跨平台. 1.2我们主要学习Swing GUI组件.3. Java GUI APIGUI API包含的类分为三个部分:组件类(component class) 容器类(container class),和辅助类(helper class)1. 组件类是⽤来创建⽤户图形界⾯的,例如JButton,JLabel,JTextField.2. 容器类是⽤来包含其他组件的,例如JFrame,JPanel3. 辅助类是⽤来⽀持GUI组件的,例如Color,Font3.1. 组件类在图形⽤户界⾯程序中当我们想要创建按钮、复选框和滚动条等这些可以显⽰在屏幕上的对象,该如何创建。
正在组件上方便的显现图象是swing 比AWT 优越的特之一正在swing 中,frame, button, lable 等组件都可超卓的用图象来加强它的外瞧,以button 为例,卖建立一个button 东西的时分一般是这样的:JButton button = new JButton("Click me");这样就建立了一个button 东西,上面显现的文字是Click me.如今我们来稍做变动:ImageIcon buttonIcon = new ImageIcon("button.gif", "a background of button");JButton button = new JButton(buttonIcon);这两行代就达到了手法,正在button 上显现了图象button.gif,注重我们用的是ImageIcon 类,而不是Image 类。
ImageIcon 中的第二个参数是对ImageIcon 东西的描绘,这个参数卖前可能会被assistive 技术用到。
假如想正在button 上同时显现文字和图象,还可以这样:JButton button = new JButton("Click me", buttonIcon);另外,还可以界说图象正在组件上的地位,如:JButton button = new JButton("Click me", buttonIcon, JButton.CENTER);最后,正在特另外讲一下如何改变你的applet/application 窗口图标,正在applet中,界说了一个image东西后就可以直接以它为参数来使用setIconImage() 要领了.正在applaction中,Frame东西也可以使用setIconImage(Image image)要领设置窗口左上角的图标,Java窗口默许图标为一个咖啡杯,图像不支撑Icon等图标式样。
Swing基础知识集合一、JFrame窗体窗体是一个组件容器,所有组件都必须有窗体去承载它们。
JFrame窗体类包含一个容器类,所有设置在窗体上的组件实际上都是放置在这个容器类中的。
这个容器作为JFrame类的一个封装属性,通过getContentPane()方法可以获取它。
如:JFrame jf = new JFrame();Container container = if.getContentPane();Swing窗体包含很多层,通常与组件和容器相关联,所以在JFrame对象创建完成后,需要调用getContentPane()方法获取窗体的组件容器,然后在容器中添加组件或设置布局管理器,通常这个容器用来包含和显示组件。
如果需要将组件添加至容器,可以使用来自Container类的add()方法进行设置。
Swing是单线程的,所有与组件绘制有关的操作都必须在单一线程中完成,这个线程就是事件队列线程。
EventQueue类的invokeLater()方法可以将Swing 组件相关操作的线程加入事件队列中,这样可以把界面绘制与业务处理线程分开。
二、常用布局管理器(一)绝对布局使用绝对布局的步骤:(1)使用Container.setLayout(null)方式取消布局管理器(2)使用Component.setBounds()方法来设置每个组件的大小与位置在使用绝对布局之前,需要调用容器的setLayout(null)方法告知编译器这里不再使用布局管理器。
其中,JFrame窗体需要调用getContentPane()方法获取窗体容器,再设置容器的布局方式。
(二)流布局管理器——FlowLayout布局像“流”一样按指定的方向摆放组件,直到占据了这一行的所有空间,然后再向下移动一行。
流布局用于安排有向流中的组件,这非常类似于段落中的文本行。
流的方向取决于容器的componentOrientation 属性,它可能是以下两个值中的一个:∙ComponentOrientation.LEFT_TO_RIGHT∙ComponentOrientation.RIGHT_TO_LEFT流布局一般用来安排面板中的按钮。