`
yaoweinan
  • 浏览: 137538 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

java awt 布局

    博客分类:
  • awt
 
阅读更多

汗颜啊,昨天到今天写一个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
分享到:
评论

相关推荐

    JAVA AWT学习手册

    AWT容器是装载其它组件的容器,以实现图形界面上的布局,如窗口、面板等。AWT容器也可以被当作组件添加到其它容器中,以便完成复杂的界面设计。 常用的AWT组件 AWT提供了许多常用的组件,如按钮、菜单、文本框、...

    Java的AWT包.pdf

    Java的Abstract Window Toolkit(AWT)包是Java标准版(Java SE)的一部分,它提供了一组基本的组件和接口,用于创建图形用户界面(GUI)。在Java编程中,如果你需要开发带有窗口、按钮、文本框等元素的应用程序,AWT就是...

    Java AWT组件综合练习

    Java AWT(Abstract Window Toolkit)是Java早期的图形用户界面(GUI)库,它提供了创建和管理窗口、按钮、文本区域等元素的基本组件。在Java AWT中,开发者可以构建丰富的交互式应用程序。本综合练习旨在帮助你深入...

    AWT组件提供的6种布局管理器

    AWT组件提供的6种布局管理器 AWT(Abstract Window Toolkit)组件提供了六种布局管理器,分别是BorderLayout、FlowLayout、GridLayout、GridBagLayout、CardLayout和BoxLayout。这些布局管理器可以帮助开发者更好地...

    awt.rar_awt_java awt_java 画图

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,它为开发者提供了创建和管理窗口、按钮、文本框等组件的基本功能。在Java中,AWT是 Swing 的基础,虽然现在Swing更常用,但AWT仍然...

    java awt应用控件

    Java AWT(Abstract Window Toolkit)是Java平台早期...以上就是关于“实用AWT控件”的详细知识点介绍,涵盖了AWT的核心组件、布局管理、事件处理、自定义组件等方面,希望对你在Java GUI编程的学习和实践中有所帮助。

    弹球游戏 JavaAWT制作

    JavaAWT是Java早期提供的用于构建桌面应用的基础组件,它提供了丰富的控件、布局管理和事件处理机制。下面将详细阐述与JavaAWT相关的核心知识点,以及如何在弹球游戏中应用这些技术。 1. **JavaAWT基础**: JavaAWT...

    java的awt计算器

    ### Java AWT 计算器知识点详解 #### 一、项目概述 本项目是一个使用Java AWT库构建的简易图形界面计算器。AWT(Abstract Window Toolkit)是Java平台早期提供的用于创建GUI应用程序的一套API。它允许开发者创建...

    java awt记事本

    通过以上描述,我们可以看到“java awt记事本”项目不仅涉及AWT的基本组件使用,还涵盖了事件处理、文件操作、布局管理等多个方面,是学习和实践Java GUI编程的一个好例子。通过阅读和理解`Editer.java`源代码,...

    Java AWT应用示例 - 持续更新

    在"AWT Sample"这个压缩包中,可能包含了使用AWT创建的各种GUI示例代码,通过学习和运行这些示例,你可以更好地理解AWT组件的用法、事件处理和布局管理,从而提升你的Java GUI编程能力。建议结合实际代码进行学习,...

    java AWT实现简单画图器(可打开、保存、清除界面、选择颜色等)

    Java AWT库是Java平台标准版(Java SE)的一部分,用于构建图形用户界面(GUI)。在本项目中,我们利用AWT(Abstract Window Toolkit)来创建一个简单的画图器,它具备基本的绘图功能,如绘制线条、圆形和矩形,并...

    Java AWT Reference

    ### Java AWT(Abstract Window Toolkit)详解:掌握Java图形用户界面设计的核心技能 #### 引言:Java AWT——构建用户界面的基石 在Java的世界里,Abstract Window Toolkit(AWT)扮演着至关重要的角色,它为Java...

    java 图形界面 java awt swt swing gui

    在Java中,有三个主要的GUI工具包:AWT(Abstract Window Toolkit),SWT(Standard Widget Toolkit)和Swing。 1. AWT(Abstract Window Toolkit): AWT是Java最早提供的GUI库,它是Java的基础GUI组件集合。AWT...

    JAVA_CH.rar_java awt chm_java.awt.geom chm

    Java AWT(Abstract Window Toolkit)是Java平台的核心部分,它提供了创建和管理窗口以及与用户交互的基本组件。这个“JAVA_CH.rar”压缩包包含了关于Java AWT和`java.awt.geom`包的CHM(Compiled HTML Help)格式的...

    用java awt组件写的tcp文件传送和接收程序

    在Java中,AWT组件通常通过继承自Component类的类实现,并通过布局管理器(如FlowLayout、GridLayout、BorderLayout)来组织它们在窗口中的位置。 TCP协议是互联网协议栈中非常关键的一环,它确保了数据的可靠传输...

    JAVA 程序 源代码 import java.applet.*;import java.awt.*

    2. **Java AWT(Abstract Window Toolkit)**: `java.awt.*` 导入的是Java的抽象窗口工具包,它是Java GUI的基础,提供了创建基本组件(如按钮、文本框)和布局管理器的能力。AWT组件是重量级的,它们依赖于操作系统...

    AWT.rar_ Java Develop_awt_java awt

    Java AWT(Abstract Window Toolkit)是Java平台早期的图形用户界面(GUI)工具包,用于创建和管理窗口、按钮、文本框等组件。在Eclipse这样的集成开发环境中,开发者可以利用AWT库来构建功能丰富的应用程序。本压缩...

    Java~GUI(图形用户界面一)AWT概述、布局管理器(流式布局、边界布局、网格布局、精确布局),实现计算器用户界面

    总之,理解并熟练运用Java AWT中的布局管理器是构建GUI应用的关键。通过流式布局、边界布局、网格布局和精确布局的组合使用,开发者可以创建出丰富多样的用户界面,满足不同应用场景的需求。同时,AWT作为Java GUI的...

Global site tag (gtag.js) - Google Analytics