java任意窗口布局
- 格式:doc
- 大小:29.00 KB
- 文档页数:3
java主窗口菜单栏设计,登录界面跳到主界面,主界面状态栏
加
摘要:
1.Java 主窗口菜单栏设计
2.登录界面跳到主界面
3.主界面状态栏加
正文:
在Java 应用程序中,设计一个美观且实用的主窗口菜单栏是提高用户体验的关键。
为了达到这个目标,我们需要进行以下三个步骤:
首先,我们需要设计Java 主窗口的菜单栏。
菜单栏通常位于窗口的顶部,为用户提供了方便的操作入口。
在设计菜单栏时,我们需要考虑应用程序的功能需求,将相关功能以菜单项的形式展示在菜单栏上。
例如,可以为文件、编辑、视图等操作设计对应的菜单项。
同时,我们还需要为菜单项添加事件监听器,以便在用户点击菜单项时执行相应的操作。
其次,我们需要实现登录界面跳转到主界面的功能。
这一功能可以通过在登录界面添加一个登录按钮来实现。
当用户点击登录按钮后,可以触发一个事件,将用户跳转到主界面。
在实际开发过程中,我们可以使用Java 的Swing 组件库来创建登录界面和主界面,从而方便地实现这一功能。
最后,我们需要为主界面添加状态栏。
状态栏通常位于窗口的底部,可以显示应用程序的一些状态信息,如当前选中的文本、当前时间等。
在Java 中,我们可以使用Swing 的JFrame 类来创建主界面,并通过setStatusText() 方法设置状态栏的文本。
这样,当用户在主界面中执行操作
时,状态栏可以实时显示相应的信息,为用户提供便捷的反馈。
综上所述,通过以上三个步骤,我们可以完成Java 主窗口菜单栏设计、登录界面跳到主界面以及主界面状态栏加的功能。
java 流动布局
这种布局管理器的策略也非常简单,它是按照控件加入的先后顺序从左到右排列,一行排满了再换到下一行,然后继续从左到右排列。
每一行的组件都是居中排列的。
另外如果有些按钮看不到,可以调整Frame的大小,使得所有控件都显示出来。
FlowLayout布局管理器同样是通过先创建对象、再利用其内置方法和变量来布局的组件。
以下是构造该布局的三种方法:
●FlowLayout( ) 构造一个FlowLayout对象,它是居中对齐的,默认的水平和垂直间隙
是5个单位。
●FlowLayout(int align) 构造一个FlowLayout对象,默认的水平和垂直间隙是五个单位。
●FlowLayout(int align,int h,int v) 创建一个新的流布局管理器,它具有指定的对齐方式以
及指定的水平和垂直间隙。
在下列的实例中,将面板的布局方式设置为FlowLayout,再创建5个按钮,来
通过上述代码,可以看出流式布局把添加到布局中的按钮组件按照先来在前后来排后的顺序来摆放,如图9-21所示。
当摆放过程,若空间不足优先摆放先添加到管理器中的组件,一般JPanel面板默认布局是流失布局。
图9-21 FlowLayout布局。
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组件,如按钮、文本框、标签等。
一、实验目的通过本次实验,掌握Java Swing框架中常用的布局管理器,如FlowLayout、BorderLayout、GridLayout、GridBagLayout等,并学会如何使用这些布局管理器对窗口进行合理布局,提高GUI应用程序的界面设计能力。
二、实验环境1. 开发工具:Eclipse2. 开发语言:Java3. 环境配置:Java Development Kit(JDK)版本为1.8三、实验内容1. 流式布局(FlowLayout)2. 边界布局(BorderLayout)3. 网格布局(GridLayout)4. 网格袋布局(GridBagLayout)四、实验步骤1. 流式布局(FlowLayout)(1)创建一个窗口,并设置窗口标题为“FlowLayout”。
(2)在窗口中添加四个按钮,分别为“Button1”、“Button2”、“Button3”和“Button4”。
(3)设置窗口的布局管理器为FlowLayout。
(4)运行程序,观察窗口布局效果。
2. 边界布局(BorderLayout)(1)创建一个窗口,并设置窗口标题为“BorderLayout”。
(2)在窗口中添加四个标签,分别为“North”、“South”、“East”和“West”。
(3)设置窗口的布局管理器为BorderLayout。
(4)运行程序,观察窗口布局效果。
3. 网格布局(GridLayout)(1)创建一个窗口,并设置窗口标题为“GridLayout”。
(2)在窗口中添加四个按钮,分别为“Button1”、“Button2”、“Button3”和“Button4”。
(3)设置窗口的布局管理器为GridLayout,并设置每行和每列的组件数量为2。
(4)运行程序,观察窗口布局效果。
4. 网格袋布局(GridBagLayout)(1)创建一个窗口,并设置窗口标题为“GridBagLayout”。
使用Java Swing进行桌面应用程序开发Java Swing是Java编程语言的一个GUI工具包,可以用于开发漂亮的桌面应用程序。
它提供了丰富的组件和布局管理器,可以帮助开发人员快速构建用户友好的界面。
下面我们来介绍一下如何使用Java Swing进行桌面应用程序开发。
首先,我们需要创建一个Swing的主窗口。
可以通过继承JFrame类来创建一个新的窗口,然后设置窗口的标题、大小和关闭操作等属性。
在构造函数中,可以添加各种组件来构建窗口的布局。
接着,我们可以在窗口中添加各种Swing组件,如按钮、文本框、标签、复选框等,来实现用户交互。
通过设置组件的属性和监听器,可以实现各种功能,如点击按钮触发事件、输入文本获取数据等。
另外,布局管理器也是Swing开发中很重要的一部分。
Swing提供了多种布局管理器,如FlowLayout、BorderLayout、GridBagLayout 等,可以帮助我们更方便地实现窗口中组件的排列和布局。
除了基本的组件和布局管理器,Swing还提供了绘图功能和自定义组件的支持。
通过继承JComponent类,可以实现自定义的绘图和组件,以满足更复杂的需求。
最后,在完成界面设计和功能实现后,可以通过调用setVisible(true)方法来显示窗口,并运行程序。
在程序运行时,用户可以与界面进行交互,体验功能和效果。
总的来说,使用Java Swing进行桌面应用程序开发是一种简单而灵活的方式。
通过合理使用Swing提供的各种组件和功能,可以快速实现各种桌面应用程序,并提供良好的用户体验。
希望以上介绍对你有所帮助,祝你在Java Swing开发的路上顺利!。
java设置组件位置的方法
在Java的Swing库中,可以使用各种方法来设置组件的位置。
以下是一些常见的方法:
1. `setBounds(int x, int y, int width, int height)`: 这个方法可以设置组件的位置和大小。
x和y参数定义了组件左上角的位置,width和height参数定义了组件的宽度和高度。
```java
(50, 50, 200, 200);
```
2. `setLocation(int x, int y)`: 这个方法可以设置组件的位置。
x和y参数定义了组件左上角的位置。
```java
(50, 50);
```
3. `setLayout(LayoutManager layout)`: 这个方法可以设置组件的布局管
理器。
布局管理器决定了组件如何在容器中定位。
```java
(new FlowLayout());
```
4. `setPreferredSize(Dimension size)`: 这个方法可以设置组件的首选大小。
首选大小用于计算布局。
```java
(new Dimension(200, 200));
```
5. `pack()`: 这个方法用于调整窗口大小以适应其内容。
它会自动调整窗口的大小,使其恰好能容纳其子组件。
请注意,使用`setBounds()`方法设置的组件位置和大小是在绝对布局中使
用的,也就是说,它们不依赖于布局管理器。
而使用`setLayout()`方法设置的布局管理器则决定了组件如何在容器中定位。
JavaGUI布局管理器容器可设置布局管理器,管理容器中组件的布局:container.setLayout(new XxxLayout());Java有6种布局管理器,AWT提供了5种:FlowLayoutBorderLayoutGridLayoutGridBagLayoutCradLayoutSwing还提供了⼀种:BoxLayout1、FlowLayout 流式布局顾名思义,组件像⽔流⼀样,从第⼀⾏开始,从左向右依次排列,碰到边界时转到下⼀⾏继续。
三个构造函数:FlowLayout() //使⽤默认参数FlowLayout(int align) //设置对齐⽅式FlowLayout(int align,int hgap,int vgap) //设置对齐⽅式、⽔平间距、垂直间距align是FlowLayout类的常量,⽐如:FlowLayout.LEFT,FlowLayout.CENTER2、BorderLayout 边界布局将容器划分为EAST、WEST、SOUTH、NORTH、CENTER五个部分,每个部分可放置⼀个组件。
2个构造函数:BorderLayout() //使⽤默认参数BorderLayout(int hgap,int vgap) //设置⽔平间距、垂直间距放置组件时需指定位置:container.add(Component comp, Borderlayout.SOUTH); //第⼆个参数是BorderLayout类的常量,指定组件位置container.add(Component comp); //缺省位置时,默认为BorderLayout.CENTER,放在中间⼀共5个位置,⼀个位置最多放1个组件。
当然,可以在⼀个位置放置多个组件,只是后放置的组件会覆盖之前放置的组件。
也可以⼀个都不放。
3、GridLayout ⽹格布局将容器划分为指定⾏数、列数的⽹格,每个格⼦的尺⼨都相同,⼀个格⼦中放置⼀个组件,适合组件⼤⼩差不多的,⽐如放置计算器的按钮。
1.布局对于JFrame窗口,默认布局是BorderLayout布局。
对于JPanel,默认布局是FlowLayout布局。
容器可以使用方法:setLayout(布局对象);来设置自己的布局。
(1)FlowLayout布局FlowLayout类创建的对象称做FlowLayout型布局。
FlowLayout类的一个常用构造方法如下:FlowLayout()该构造方法可以创建一个居中对齐的布局对象。
例如:FlowLayout flow=new FlowLayout();如果一个容器con使用这个布局对象:con.setLayout(flow);那么,con可以使用Container类提供的add方法将组件顺序地添加到容器中,组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列。
FlowLayout布局对象调用flow.setAlignment(FlowLayout.LEFT);来设置组件靠左对齐FlowLayout布局对象调用setHgap(int hgap) 方法和setVgap(int vgap)可以重新设置布局的水平间隙和垂直间隙。
(2)BorderLayout布局BorderLayout 布局是Window型容器的默认布局,例如JFrame、JDialog都是Window类的间接子类,它们的默认布局都是BorderLayout 布局。
容器使用BorderLayout 布局,那么容器空间简单地划分为东、西、南、北、中五个区域。
每加入一个组件都应该指明把这个组件添加在哪个区域中,区域由BorderLayout中的静态常量CENTER、NORTH、SOUTH、WEST、EAST表示.添加到某个区域的组件将占据整个这个区域。
每个区域只能放置一个组件,如果向某个已放置了组件的区域再放置一个组件,那么先前的组件将被后者替换掉。
(3)CardLayout 布局使用CardLayout 的容器可以容纳多个组件,但是实际上同一时刻容器只能从这些组件中选出一个来显示,这个被显示的组件将占据所有的容器空间。
package login;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Login extends JFrame{
/**
* @param args
* 登陆窗口
*/
private JLabel userId_label;
private JLabel userPass_label;
private JTextField userId_field;
private JTextField userPass_field;
private JButton ok_button;
private JButton cancle_button;
private JPanel mainPanel;
JFrame frame;
int frame_width;//窗口的宽度
int frame_height;//窗口的高度
public Login(){
Toolkit toolKit = Toolkit.getDefaultToolkit();
Dimension dimension = toolKit.getScreenSize();
int width =dimension.width; //屏幕的宽度
int height =dimension.height;//屏幕的宽度
frame_width = width/3;
frame_height = height/3;
buildPanel(frame_width,frame_height);//新建面板
this.setTitle("酒店管理系统");
this.setSize(frame_width,frame_height);
this.setLocation(frame_width, frame_height);
this.setContentPane(mainPanel);
this.setResizable(false);
this.setVisible(true);
}
public void buildPanel(int frame_width,int frame_height){
mainPanel = new JPanel();
mainPanel.setSize(frame_width, frame_height);
mainPanel.setLayout(null);
//新建帐号、密码标签
userId_label = new JLabel("帐号:");
userId_label.setSize(100, 20);
userId_label.setLocation(frame_width/4, frame_height/4);
userPass_label = new JLabel("密码:");
userPass_label.setSize(100, 20);
userPass_label.setLocation(frame_width/4, frame_height/4+40);
//新建帐号、密码文本域
userId_field = new JTextField();
userId_field.setSize(150, 20);
userId_field.setLocation(frame_width/4+50, frame_height/4);
userId_field.setBackground(Color.WHITE);
userPass_field = new JTextField();
userPass_field.setSize(150, 20);
userPass_field.setLocation(frame_width/4+50, frame_height/4+40);
//新建确定、取消按钮
ok_button = new JButton("确定");
ok_button.setSize(70, 20);
ok_button.setLocation(frame_width/4+10, frame_height/4+80);
cancle_button = new JButton("取消");
cancle_button.setSize(70, 20);
cancle_button.setLocation(frame_width/4+120, frame_height/4+80);
mainPanel.add(userId_label);
mainPanel.add(userPass_label);
mainPanel.add(userId_field);
mainPanel.add(userPass_field);
mainPanel.add(ok_button);
mainPanel.add(cancle_button);
}
public static void main(String[] args) { new Login();
}
}。