JAVA面板 布局实例

合集下载

java实验5图形用户界面设计试验

java实验5图形用户界面设计试验

java实验5图形⽤户界⾯设计试验常⽤布局1)、流布局: FlowLayout 从左到右,⾃上⽽下⽅式在容器中排列,控件的⼤⼩不会随容器⼤⼩变化.容器.setLayout(new FlowLayout(FlowLayout.LEFT));2)、⽹格布局: GridLayout 按照指定⾏数与列数,将容器分成⼤⼩相等的单元格每个单元格放置⼀个控件. 不能将控件放在指定单元格 容器.setLayout(new GridLayout(3,4,10,15));3)、边界布局: BorderLayout 将容器分成东、西、南、北、中五个部分 容器.setLayout(new BorderLayout()); 窗⼝的内容⾯板默认布局就是边界布局。

容器.add(控件,BorderLayout.NORTH);4)、混合布局: 使⽤JPanel,将多个布局组合在⼀起使⽤5)、绝对布局 null: 以坐标定位 容器.setLayout(null); 每个控件在放置在容器之前,必须设置其边界 setBounds(x,y,width,height); btn.setBounds(10,100,30,60);常⽤事件1)、事件源 EventSource:能够触发事件控件如:JButton,JTextField,JFrame,JComboBox,....2)、事件 Event:ActionEvent,KeyEvent,WindowEvent,TextEvent,...3)、事件侦听者Listener(接⼝) ActionListener,WindowListener,...class A implements ActionListener{public void actionPerformed(ActionEvent e){....}}A lis=new A();4)、事件处理函数public void actionPerformed(ActionEvent e){....}事件流程:事件源触发事件-->事件源侦听者接收事件-->⾃动调⽤相应事件处理函数.实践编程1.在应⽤程序窗体中安排1个⽂本框,⼀个标签。

java 流动布局

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中panel的用法

java中panel的用法

java中panel的用法在Java中,`Panel` 是一个简单的容器类,用于组织和管理其他组件(如按钮、文本框等)。

它通常被用作放置和组织其他GUI 组件的容器。

以下是使用`Panel` 的基本用法:```javaimport java.awt.*;import javax.swing.*;public class PanelExample {public static void main(String[] args) {// 创建一个顶层容器(通常是JFrame)JFrame frame = new JFrame("Panel Example");frame.setSize(400, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 创建一个面板JPanel panel = new JPanel();// 设置面板的布局管理器(可以选择FlowLayout、BorderLayout等)panel.setLayout(new FlowLayout());// 向面板中添加其他组件,例如按钮、文本框等JButton button1 = new JButton("Button 1");JButton button2 = new JButton("Button 2");JTextField textField = new JTextField("Type something");panel.add(button1);panel.add(button2);panel.add(textField);// 将面板添加到顶层容器中frame.add(panel);// 设置顶层容器可见frame.setVisible(true);}}```上述代码创建了一个简单的窗口(`JFrame`),在窗口中放置了一个`Panel`,并在`Panel` 中添加了两个按钮和一个文本框。

java JPanel面板

java  JPanel面板

java JPanel面板
JPanel是java中常用到的容器之一,JPanel除了可以加入组件外,还能够有效的利用JPanel使版面管理的更加容易。

而JPanel缺省布局管理器是FlowLayout。

Swing的JPanel支持双重缓冲区处理的功能,使得JPanel在处理动画上更为流畅,较不会有画面闪烁的情况发生。

Java中的JPanel属于容器型组件,可以在JPanel中放置按钮、文本框等非容器组件,甚至可以在JPanel中再放置若干个JPanel组件。

顶层容器也是容器型组件,每一个窗口应用程序中有且只能有一个顶层容器组件。

JPanel类常用构造方法如表9-6所示:
表9-6 JPanel类常用构造方法
一般情况下,JPanel类使用其父类中的方法就可以完成编程任务。

如果需要JPanel面板中添加组件,可以使用add(Component comp)方法来实现。

如下所示:
在窗口中,直接添加了一个面板内容,所以在效果图中无法具体的呈现出面板与窗口的关系。

其实,该实例非常容易理解,就像一个房间的窗户上,贴了一层正好相同大小的纸张一样,如图9-9所示。

图9-9 在窗口中添加面板。

java布局中的BoxLayout布局,使用BoxLayout进行Swing布局

java布局中的BoxLayout布局,使用BoxLayout进行Swing布局

java布局中的BoxLayout布局,使⽤BoxLayout进⾏Swing布局在⽤户使⽤ Java Swing 进⾏⽤户界⾯开发过程中,会碰到如何对 Java Swing 的控件进⾏布局的问题。

Swing 的控件放置在容器(Container) 中,容器就是能够容纳控件或者其它容器的类,容器的具体例⼦有 Frame、Panel 等等。

容器需要定义⼀个布局管理器来对控件进⾏布局管理,Swing 当中提供的主要的布局管理器有 FlowLayout、BorderLayout、BoxLayout、GridLayout 和 GridBaglayout, 它们的主要特点如表 1 所⽰:表 1. Swing 中的⼀些主要布局管理器的⽐较布局管理器特点FlowLayout把控件按照顺序⼀个接⼀个由左向右的⽔平放置在容器中,⼀⾏放不下,就放到下⼀⾏BorderLayout将整个容器划分成东南西北中五个⽅位来放置控件,放置控件时需要指定控件放置的⽅位BoxLayout可以指定在容器中是否对控件进⾏⽔平或者垂直放置,⽐ FlowLayout 要更为灵活GridLayout将整个容器划分成⼀定的⾏和⼀定的列,可以指定控件放在某⾏某列上GridBagLayout是 Swing 当中最灵活也是最复杂的布局管理器,可对控件在容器中的位置进⾏⽐较灵活的调整本⽂主要关注在 BoxLayout 布局管理器的使⽤上。

我们⾸先对 BoxLayout 作⼀下介绍。

BoxLayout 介绍如前所述,BoxLayout 可以把控件依次进⾏⽔平或者垂直排列布局,这是通过参数 X_AXIS、Y_AXIS 来决定的。

X_AXIS 表⽰⽔平排列,⽽ Y_AXIS 表⽰垂直排列。

BoxLayout 的构造函数有两个参数,⼀个参数定义使⽤该 BoxLayout 的容器,另⼀个参数是指定 BoxLayout 是采⽤⽔平还是垂直排列。

下⾯是⼀个创建 BoxLayout 实例的例⼦:JPanel panel=new JPanel();BoxLayout layout=new BoxLayout(panel, BoxLayout.X_AXIS);panel.setLayout(layoout);在这个例⼦中,⼀个 BoxLayout 布局管理器的实例 layout 被创建,这个实例被设置为 panel 的布局管理器,该布局管理器采⽤了⽔平排列来排列控件。

javase综合案例

javase综合案例
queryButton.addActionListener(this);
updateButton.addActionListener(this);
deleteButton.addActionListener(this);
}
}
```
2. 实现业务逻辑
接下来,我们需要实现学生信息的添加、查询、修改和删除等功能。这些功能可以通过Java的方法来实现,例如使用`Scanner`类来读取用户输入的数据,使用`ArrayList`类来管理学生列表等。以下是实现业务逻辑的代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class StudentGUI extends JFrame implements ActionListener {
private JTextField nameField;
buttonPane.add(queryButton);
buttonPane.add(updateButton);
buttonPane.add(deleteButton);
pane.add(buttonPane, BorderLayout.SOUTH);
addButton.addActionListener(this);
private JTextField idField;
private JButton addButton;
private JButton queryButton;
private JButton updateButton;
private JButton deleteButton;

java jpanel方法

java jpanel方法

Java JPanel方法一、什么是JPanelJPanel是Java中的一个Swing组件,它扩展了JComponent类,并提供了一种轻量级的容器,用于组织图形界面的其他组件。

JPanel可用于创建各种界面元素,例如按钮、文本框、标签等,并将它们以特定布局方式放置在一个面板中。

二、JPanel的创建与使用1. 创建JPanel对象在Java中,可以通过直接实例化JPanel类来创建JPanel对象,如下所示:JPanel panel = new JPanel();2. 添加组件创建JPanel对象后,可以通过添加其他组件来完善界面。

可以使用add方法将组件添加到JPanel中,如下所示:panel.add(new JButton("按钮"));panel.add(new JTextField(10));panel.add(new JLabel("标签"));3. 设置布局JPanel可以使用不同的布局管理器来控制添加的组件的排列方式。

常见的布局管理器有FlowLayout、BorderLayout和GridLayout等。

例如,使用FlowLayout布局:panel.setLayout(new FlowLayout());4. 设置其他属性除了布局管理器,JPanel还有其他一些常用的属性可以进行设置,如背景色、前景色和边框等。

设置背景色和前景色可以使用setBackground和setForeground方法,设置边框可以使用setBorder方法。

panel.setBackground(Color.WHITE);panel.setForeground(Color.BLACK);panel.setBorder(BorderFactory.createLineBorder(Color.GRAY, 1));5. 添加事件监听器JPanel也支持添加事件监听器,以便对用户操作进行响应。

java flowlayout用法

java flowlayout用法

java flowlayout用法Java中的FlowLayout布局管理器被广泛用于创建简单的用户界面。

FlowLayout是一种简单而灵活的布局管理器,它将组件按照给定的顺序一次排列在一行或一列上。

在这篇文章中,我们将深入探讨FlowLayout的使用和用法,并提供一些例子来帮助你更好地理解它。

第一部分:什么是FlowLayoutFlowLayout是Java的布局管理器之一,它可以帮助我们轻松地安排和管理用户界面中的组件。

它提供了一种简单的方法来按照水平或垂直方向排列组件,这取决于我们如何选择参数。

我们可以使用FlowLayout来创建任何大小和形状的界面,无论是桌面应用程序还是移动应用程序。

第二部分:FlowLayout的基本用法FlowLayout的基本用法非常简单。

我们可以通过创建一个FlowLayout的实例来启用FlowLayout管理器。

例如,下面的代码将创建一个具有默认参数的FlowLayout布局管理器:FlowLayout layout = new FlowLayout();然后,我们可以将这个布局管理器应用于窗口、面板或任何其他容器。

例如,假设我们有一个JFrame对象,我们可以通过调用其setLayout()方法将FlowLayout应用到该窗口:JFrame frame = new JFrame();frame.setLayout(layout);接下来,我们可以将组件添加到窗口中,并它们将按照FlowLayout的规定进行排列。

默认情况下,组件将从左到右依次排列,直到达到窗口的边界,然后换行继续排列。

第三部分:FlowLayout的参数FlowLayout提供了一些参数来定义组件的排列方式。

其中最常用的参数有三个:alignment、hgap和vgap。

alignment参数用于指定组件的对齐方式。

它可以具有三个值:FlowLayout.LEFT、FlowLayout.CENTER和FlowLayout.RIGHT。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

package client;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import bel;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import javax.swing.JButton;
import util.SystemSqlInfo;
public class Login extends Frame implements ActionListener{
private Panel p=new Panel();
private Panel pc=new Panel();
private Panel ps=new Panel();
private Panel pcw=new Panel();
private Panel pcc=new Panel();
private Panel psn=new Panel();
private Label lsqlName=new Label("SqlName:",Label.RIGHT);
private Label luserName=new Label("UserName:",Label.RIGHT); private Label lpassword=new Label("Password:",Label.RIGHT); private Label ldataBase=new Label("Database:",Label.RIGHT); private Label lIp=new Label("IP:",Label.RIGHT);
//private Label lconnectas=new Label("Connect as:",Label.RIGHT); private Choice tSqlName=new Choice();
private TextField tUserName=new TextField();
private TextField tPassword=new TextField();
private TextField tDataBase=new TextField();
private TextField tIp=new TextField();
private JButton ok=new JButton("Ok");
private JButton cancel=new JButton("Cancel");
private Connection conn=null;
/*构造器*/
public Login(){
/*面板布局*/
p.setLayout(new BorderLayout());
this.add(p);
pc.setLayout(new BorderLayout());
psn.setLayout(new GridLayout(1,3,20,5));
p.add(pc,"Center");
p.add(ps,"South");
pcc.setLayout(new GridLayout(6,1,2,2)); pcw.setLayout(new GridLayout(6,1,2,2));
pc.add(pcc,"Center");
pc.add(pcw,"West");
pcc.add(tSqlName);
pcc.add(tUserName);
pcc.add(tPassword);
tPassword.setEchoChar('*');
pcc.add(tDataBase);
pcc.add(tIp);
tIp.setText("localhost");
tIp.setFont(new Font("宋体",Font.ITALIC,15)); pcw.add(lsqlName);
pcw.add(luserName);
pcw.add(lpassword);
pcw.add(ldataBase);
pcw.add(lIp);
ps.add(psn,"North");
ps.add(new Panel(),"South");
psn.add(ok);
psn.add(cancel);
psn.add(new Label());
tPassword.addActionListener(this);/*绑定事件*/ ok.addActionListener(this);/*绑定事件*/ cancel.addActionListener(this);/*绑定事件*/ tSqlName.add("Oracle");
tSqlName.add("MSSQLServer");
tSqlName.add("MySQL");
tSqlName.add("DB2");
tSqlName.add("Access");
ok.setBackground(new Color(244,243,239)); cancel.setBackground(new Color(244,243,239)); p.setBackground(new Color(236,233,216));
this.setSize(300,200);
/*让界面居中显示*/
Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((screenSize.width-300)/2,
(screenSize.height-200)/2);
this.setResizable(false);
this.setTitle("Sql Login");
this.setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void connect(){
SystemSqlInfo.setDatabaseProductName(tSqlName.getSelectedItem());
SystemSqlInfo.setDatabaseName(tDataBase.getText());
SystemSqlInfo.setUserName(tUserName.getText());
SystemSqlInfo.setPassword(tPassword.getText());
SystemSqlInfo.setIp(tIp.getText());
//登录成功实例化软件主界面
new Sqlall();
this.dispose();//让登录界面消失
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==ok||e.getSource()==tPassword){
connect();/*调用链接函数*/
}else{
System.exit(0);
}
}
public static void main(String[]args){
new Login();
}
}。

相关文档
最新文档