汗颜啊,昨天到今天写一个awt界面,布局差点把人恶心死,现在总算对这玩意有了一些眉目。
首先,布局大的分为2种,一种使用java awt 提供的布局来完成,这样做的好处就是在修改总体容器大小时候对整体布局影响很小,能够自动调整。另外一种就是不使用java 提供的布局管理,那么设置布局管理为null便可,但是没一个元件都需要自己定义大小位置,负责会显示不出来或者有问题,在前者布局管理器使用的是setPreferredSize设置的大小,其他都不管,后者使用的是setSize或者setBounds.
下面是我用java awt 的布局管理做的一个布局
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.HeadlessException;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
import javax.swing.SpringLayout.Constraints;
public class DsGrid extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new DsGrid("OK");
}
public DsGrid(String arg0) throws HeadlessException {
super(arg0);
this.setSize(new Dimension(600, 500));
this.createcomponent();
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);
}
private void createcomponent() {
JPanel component=new JPanel();
component.setSize(this.getWidth(),this.getHeight());
component.setLayout(new BorderLayout());
JPanel searchPanel=new JPanel();
GridBagLayout searchgridbag = new GridBagLayout();
GridBagConstraints searchc = new GridBagConstraints();
searchPanel.setLayout(searchgridbag);
JPanel conditionPanel=new JPanel();
conditionPanel.setBackground(Color.red);
GridBagLayout condBagLayout = new GridBagLayout();
GridBagConstraints condConstraints = new GridBagConstraints();
conditionPanel.setLayout(condBagLayout);
Dimension lab_dimension=new Dimension(70, 30);
condConstraints.fill=GridBagConstraints.NONE;
condConstraints.weighty=0.2;
condConstraints.weightx=0.2;
condConstraints.gridx=0;
condConstraints.gridy=0;
condConstraints.gridwidth=1;
JLabel typeLable=new JLabel("Type",SwingConstants.RIGHT);
typeLable.setPreferredSize(lab_dimension);
condBagLayout.setConstraints(typeLable, condConstraints);
conditionPanel.add(typeLable);
condConstraints.gridy=1;
JLabel nameLable=new JLabel("Name",SwingConstants.RIGHT);
nameLable.setPreferredSize(lab_dimension);
condBagLayout.setConstraints(nameLable, condConstraints);
conditionPanel.add(nameLable);
condConstraints.gridy=2;
JLabel sLable=new JLabel("S..",SwingConstants.RIGHT);
sLable.setPreferredSize(lab_dimension);
condBagLayout.setConstraints(sLable, condConstraints);
conditionPanel.add(sLable);
condConstraints.gridy=3;
JLabel descLable=new JLabel("Description",SwingConstants.RIGHT);
descLable.setPreferredSize(lab_dimension);
condBagLayout.setConstraints(descLable, condConstraints);
conditionPanel.add(descLable);
condConstraints.gridy=4;
JLabel categoryLable=new JLabel("Category",SwingConstants.RIGHT);
categoryLable.setPreferredSize(lab_dimension);
condBagLayout.setConstraints(categoryLable, condConstraints);
conditionPanel.add(categoryLable);
condConstraints.gridy=0;
condConstraints.gridx=2;
condConstraints.gridwidth=4;
condConstraints.weightx=0.6;
condConstraints.fill=GridBagConstraints.HORIZONTAL;
JComboBox typeComboBox=new JComboBox();
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
Dimension query_combo_Dimension=new Dimension(120, 25);
condConstraints.gridy=1;
condConstraints.fill=GridBagConstraints.NONE;
condConstraints.anchor=GridBagConstraints.WEST;
condConstraints.gridx=2;
condConstraints.gridwidth=1;
condConstraints.weightx=0.0;
typeComboBox=new JComboBox();
typeComboBox.setPreferredSize(query_combo_Dimension);
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridy=2;
typeComboBox=new JComboBox();
typeComboBox.setPreferredSize(query_combo_Dimension);
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridy=3;
typeComboBox=new JComboBox();
typeComboBox.setPreferredSize(query_combo_Dimension);
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridy=4;
typeComboBox=new JComboBox();
typeComboBox.setPreferredSize(query_combo_Dimension);
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridx=3;
JLabel nullLab=new JLabel("");
nullLab.setPreferredSize(new Dimension(20, 20));
condBagLayout.setConstraints(nullLab, condConstraints);
conditionPanel.add(nullLab);
condConstraints.fill=GridBagConstraints.HORIZONTAL;
condConstraints.gridy=1;
condConstraints.gridx=4;
condConstraints.gridwidth=2;
typeComboBox=new JComboBox();
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridy=2;
typeComboBox=new JComboBox();
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridy=3;
typeComboBox=new JComboBox();
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
condConstraints.gridy=4;
typeComboBox=new JComboBox();
condBagLayout.setConstraints(typeComboBox, condConstraints);
conditionPanel.add(typeComboBox);
Dimension btn_Dimension=new Dimension(100, 30);
condConstraints.fill=GridBagConstraints.NONE;
condConstraints.anchor=GridBagConstraints.CENTER;
condConstraints.gridx=6;
condConstraints.gridy=0;
condConstraints.gridwidth=1;
condConstraints.weightx=0.2;
JButton searchBtn=new JButton("Search");
searchBtn.setPreferredSize(btn_Dimension);
condBagLayout.setConstraints(searchBtn, condConstraints);
conditionPanel.add(searchBtn);
condConstraints.gridy=3;
JButton selectAll=new JButton("SelectAll");
selectAll.setPreferredSize(btn_Dimension);
condBagLayout.setConstraints(selectAll, condConstraints);
conditionPanel.add(selectAll);
condConstraints.gridy=4;
JButton Dselect=new JButton("SelectAll");
Dselect.setPreferredSize(btn_Dimension);
condBagLayout.setConstraints(Dselect, condConstraints);
conditionPanel.add(Dselect);
searchc.fill = GridBagConstraints.BOTH;
searchc.gridwidth = GridBagConstraints.REMAINDER;
searchc.weightx = 1.0;
searchc.weighty=0.2;
searchgridbag.setConstraints(conditionPanel, searchc);
searchPanel.add(conditionPanel);
JPanel resultPanel=new JPanel();resultPanel.setBackground(Color.yellow);
resultPanel.setLayout(new BorderLayout());
JTable table=new JTable(1,4) ;
resultPanel.add(table,BorderLayout.CENTER);
searchc.weighty = 0.8;
searchgridbag.setConstraints(resultPanel, searchc);
searchPanel.add(resultPanel);
component.add(searchPanel,BorderLayout.CENTER);
JPanel okAndCancelPanel=new JPanel();
okAndCancelPanel.setLayout(new FlowLayout(FlowLayout.CENTER));okAndCancelPanel.setBackground(Color.green);
okAndCancelPanel.setSize(new Dimension(component.getWidth(), 30));
okAndCancelPanel.add(new JButton("OK"));okAndCancelPanel.add(new JButton("OK"));
component.add(okAndCancelPanel,BorderLayout.SOUTH);
this.setContentPane(component);
}
}
- 大小: 7.6 KB
分享到:
相关推荐
AWT容器是装载其它组件的容器,以实现图形界面上的布局,如窗口、面板等。AWT容器也可以被当作组件添加到其它容器中,以便完成复杂的界面设计。 常用的AWT组件 AWT提供了许多常用的组件,如按钮、菜单、文本框、...
Java的Abstract Window Toolkit(AWT)包是Java标准版(Java SE)的一部分,它提供了一组基本的组件和接口,用于创建图形用户界面(GUI)。在Java编程中,如果你需要开发带有窗口、按钮、文本框等元素的应用程序,AWT就是...
Java AWT(Abstract Window Toolkit)是Java早期的图形用户界面(GUI)库,它提供了创建和管理窗口、按钮、文本区域等元素的基本组件。在Java AWT中,开发者可以构建丰富的交互式应用程序。本综合练习旨在帮助你深入...
AWT组件提供的6种布局管理器 AWT(Abstract Window Toolkit)组件提供了六种布局管理器,分别是BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout和BoxLayout。这些布局管理器可以帮助开发者更好地...
Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了创建和管理窗口、按钮、文本框等组件的基本功能。在Java中,AWT是 Swing 的基础,虽然现在Swing更常用,但AWT仍然...
Java AWT(Abstract Window Toolkit)是Java平台早期...以上就是关于“实用AWT控件”的详细知识点介绍,涵盖了AWT的核心组件、布局管理、事件处理、自定义组件等方面,希望对你在Java GUI编程的学习和实践中有所帮助。
JavaAWT是Java早期提供的用于构建桌面应用的基础组件,它提供了丰富的控件、布局管理和事件处理机制。下面将详细阐述与JavaAWT相关的核心知识点,以及如何在弹球游戏中应用这些技术。 1. **JavaAWT基础**: JavaAWT...
### Java AWT 计算器知识点详解 #### 一、项目概述 本项目是一个使用Java AWT库构建的简易图形界面计算器。AWT(Abstract Window Toolkit)是Java平台早期提供的用于创建GUI应用程序的一套API。它允许开发者创建...
通过以上描述,我们可以看到“java awt记事本”项目不仅涉及AWT的基本组件使用,还涵盖了事件处理、文件操作、布局管理等多个方面,是学习和实践Java GUI编程的一个好例子。通过阅读和理解`Editer.java`源代码,...
在"AWT Sample"这个压缩包中,可能包含了使用AWT创建的各种GUI示例代码,通过学习和运行这些示例,你可以更好地理解AWT组件的用法、事件处理和布局管理,从而提升你的Java GUI编程能力。建议结合实际代码进行学习,...
Java AWT库是Java平台标准版(Java SE)的一部分,用于构建图形用户界面(GUI)。在本项目中,我们利用AWT(Abstract Window Toolkit)来创建一个简单的画图器,它具备基本的绘图功能,如绘制线条、圆形和矩形,并...
### Java AWT(Abstract Window Toolkit)详解:掌握Java图形用户界面设计的核心技能 #### 引言:Java AWT——构建用户界面的基石 在Java的世界里,Abstract Window Toolkit(AWT)扮演着至关重要的角色,它为Java...
在Java中,有三个主要的GUI工具包:AWT(Abstract Window Toolkit),SWT(Standard Widget Toolkit)和Swing。 1. AWT(Abstract Window Toolkit): AWT是Java最早提供的GUI库,它是Java的基础GUI组件集合。AWT...
Java AWT(Abstract Window Toolkit)是Java平台的核心部分,它提供了创建和管理窗口以及与用户交互的基本组件。这个“JAVA_CH.rar”压缩包包含了关于Java AWT和`java.awt.geom`包的CHM(Compiled HTML Help)格式的...
在Java中,AWT组件通常通过继承自Component类的类实现,并通过布局管理器(如FlowLayout、GridLayout、BorderLayout)来组织它们在窗口中的位置。 TCP协议是互联网协议栈中非常关键的一环,它确保了数据的可靠传输...
2. **Java AWT(Abstract Window Toolkit)**: `java.awt.*` 导入的是Java的抽象窗口工具包,它是Java GUI的基础,提供了创建基本组件(如按钮、文本框)和布局管理器的能力。AWT组件是重量级的,它们依赖于操作系统...
Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,用于创建和管理窗口、按钮、文本框等组件。在Eclipse这样的集成开发环境中,开发者可以利用AWT库来构建功能丰富的应用程序。本压缩...
总之,理解并熟练运用Java AWT中的布局管理器是构建GUI应用的关键。通过流式布局、边界布局、网格布局和精确布局的组合使用,开发者可以创建出丰富多样的用户界面,满足不同应用场景的需求。同时,AWT作为Java GUI的...