0 0

一个关于swing中添加组件的基本问题5

下面这段代码直接在JFrame上add一个button,这样的话button是加在JFrame的哪个层次上的?为什么这样加的话两个按钮是重叠在一起的,如图所示。
import javax.swing.*;
public class ButtonTest extends JFrame{
    private JButton button1 = new JButton("确定");
    private JButton button2 = new JButton("取消");
    public ButtonTest(){
        setSize(500,500);
        add(button1);
        add(button2);
    }
    public static void main(String[] args) {
        ButtonTest f = new ButtonTest();
        f.setVisible(true);
    }
}

而如果创建一个JPane对象panel1,将contentPane set为panel1,在panel1上添加就得到我想要的效果了,如图所示。
import javax.swing.*;
public class ButtonTest extends JFrame{
    private JButton button1 = new JButton("确定");
    private JButton button2 = new JButton("取消");
    private JPanel panel1 = new JPanel();
    public ButtonTest(){
        setSize(500,500);
        setContentPane(panel1);
        panel1.add(button1);
        panel1.add(button2);
    }
    public static void main(String[] args) {
        ButtonTest f = new ButtonTest();
        f.setVisible(true);
    }
}

请问这两种方式有什么区别?



2012年10月08日 12:41
  • 大小: 1.2 KB
  • 大小: 2.8 KB

1个答案 按时间排序 按投票排序

0 0

采纳的答案

对于JFrame和JWindow这样的顶层框架来说,默认的布局管理器是边界布局(BorderLayout);JPanel默认的布局管理器为FlowLayout。

因此,直接使用JFrame的add方法添加,相当于都加到了center,因此后面的会覆盖前面的
而JPanel直接使用add方法,FlowLayout会将控件居中排列分布

2012年10月08日 14:00

相关推荐

    swing界面设计之JTree

    创建 to-do 列表:创建一个可重用组件并在表中显示数据 23 创建一个可重用的面板 23 将 bean 组合在一起 24 添加一个表并重用这个面板 26 定义表模型 28 显示列表中的项 29 创建 to-do 列表:完成 —— 按钮和监听...

    第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社.pptx

    当把一个组件添加到容器中时,希望控制组件在容器中的位置和尺寸,这就需要学习布局设计的知识,因为组件在容器中的位置和尺寸是由布局管理器来决定的。所有的容器都会引用一个布局管理器实例,通过它来自动进行...

    图书管理系统(java源码)(java awt javax.swing组件)(论文详细说明)

    其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力. 基本功能...

    计算器.jar

    用java做一个简单的计算器,基于swing,实现了基本的加减乘除四则运算,和多元运算。总体思想是,创建图形面板,为组件添加监听,将运算符前面的数添加到StringBuilder类实例中,利用javaScriptEngine直接对字符串...

    Java图形用户界面

    而容器也是组件,它的最主要的作用是装载其它组件,但是象Panel这样的容器也经常被当作组件添加到其它容器中,以便完成杂的界面设计。布局管理器是java语言与其它编程语言在图形系统方面较为显著的区别,容器中各个...

    【设计】java高级程序设计期末复习题.docx

    使用add方法可以在框架的内容窗格中添加组件( ) 15.FlowLayout 是最简单的布局管理器( ) 16.布局管理器GridLayout不是以网格(矩阵)的形式排列组件(X) 17.布局管理器的属性不可以动态的改变(X) 18.每一时刻...

    JAVA_API1.6文档(中文)

    javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。 javax.swing.plaf.basic 提供了根据基本外观构建的用户界面对象。 javax.swing.plaf.metal 提供根据 Java 外观(曾经代...

    时钟与日历课程设计报告

    针对用户对日历与时间的系统要求,本应用软件运用java语言编写,在swing组件中通过程序的编写,实现了基本的时钟和日历功能,本应用软件中的时钟时间以所在电脑的系统时间为准,用户可在修改时间的界面中修改系统...

    基于java的简易加减乘除计算器小程序

    本系统采用java技术开发,使用文件保存数据,集成开发环境...熟悉和掌握Java Swing的基本GUI程序设计,掌握如何构建一个窗口程序,并且窗口中添加常用的Swing组件,使用各种布局管理器来完成对窗口中的组件进行布局。

    《JTable编写GUI学生对象管理系统》源码

    您可以通过该示例了解如何创建一个简单的学生对象管理系统,包括添加、删除、编辑和展示学生信息等功能。通过实践,您可以加深对JTable的理解,并掌握在GUI应用程序中展示和管理数据的技巧。 其他说明: 在学习过程...

    OpenIndex-SHEF:Swing HTML编辑器框架的分支

    特征具有语法高亮显示HTML源代码编辑器上下文相关的摇摆动作无限撤消/重做表创建和编辑点击并拖动可调整大小的表格点击并拖动可调整大小的图像易于嵌入到Swing应用程序或Applet中您在HTML编辑组件中期望的所有基本...

    Java 简单销售管理及其源代码.rar

    这个简单的销售点是一个非常基本的应用程序,使用 Java 中的 Swing 工具包中的图形组件。这个简单的应用程序的功能包括添加、更新、删除和查看库存项目。在这里您可以轻松地执行CRUD操作。整个系统是在 Netbeans IDE...

    TRACV:使用自定义Swing UI在面向对象标准上创建的塔防游戏

    TRACV是一种开放源代码的塔防游戏,它是在学习基本的面向对象设计概念的前提下创建的。 这是与一些朋友的协作努力开始的,目的是教他们OOP和基本的Java,直到学校和工作职责使这成为我的个人项目。 目前仍在开发中...

    一种基于Java企业内部及时通讯软件设计.doc

    一个用户可以添加多 个用户为好友,同时一个用户也可以被多个用户添加为好友。用户可以删除好友,但是 用户只可以将好友放在一个组中。 (4)即时通讯。即时通讯模块用户可以与在线的好友进行聊天,用户首先查看好友...

    Java图形界面开发全练习代码.docx

    这里面包括Java中最基本的GUI开发库Swing的基本开发内容,主要包括框架的建立,简单的组件添加,以及基本的动作操作。

    ZIP格式压缩/解压系统设计(JAVA)

    要求学生能熟练使用基于Swing的GUI设计,熟练使用常用组件和容器,理解java事件处理机制,会查看API documentation完成设计任务,熟练文件流的操作。 【基本功能】 (1) 通过菜单组件、按钮组件、文本框组件等完成...

    TextEditorJava:Java中的基本文本编辑器

    文本编辑器使用Swing框架的Java基本文本编辑器添加到编辑器中的组件列表: “打开”框:为您提供文件打开器UI。 一个“清除”框,用于清除text_area中的所有文本。 代表当前打开的文档名称的块。 一个“保存”块,将...

    JavaAPI1.6中文chm文档 part1

    javax.swing.plaf 提供一个接口和许多抽象类,Swing 用它们来提供自己的可插入外观功能。 javax.swing.plaf.basic 提供了根据基本外观构建的用户界面对象。 javax.swing.plaf.metal 提供根据 Java 外观(曾经代...

Global site tag (gtag.js) - Google Analytics