首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jframe总是在上面,但是在另一个JFrame下面?

在Java中,JFrame是一个顶级容器,用于创建图形用户界面(GUI)应用程序的窗口。默认情况下,每个JFrame都会在其他JFrame的上方显示,这是因为JFrame的默认层级是顶层。

然而,如果一个JFrame被设置为另一个JFrame的子窗口(子容器),那么它将显示在父窗口的下方。这是因为子窗口的层级低于父窗口。

要实现一个JFrame在另一个JFrame下面的效果,可以使用JFrame的setContentPane()方法将一个JPanel设置为其内容面板,然后将这个JFrame设置为另一个JFrame的子窗口。这样,子窗口将显示在父窗口的下方。

以下是一个示例代码:

代码语言:txt
复制
import javax.swing.*;

public class MainFrame extends JFrame {
    public MainFrame() {
        setTitle("父窗口");
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        // 创建子窗口
        SubFrame subFrame = new SubFrame();
        // 将子窗口设置为父窗口的子容器
        setContentPane(subFrame);
    }
    
    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            MainFrame mainFrame = new MainFrame();
            mainFrame.setVisible(true);
        });
    }
}

class SubFrame extends JPanel {
    public SubFrame() {
        // 设置子窗口的样式和内容
        setOpaque(true);
        setBackground(Color.RED);
        JLabel label = new JLabel("子窗口");
        add(label);
    }
}

在这个例子中,创建了一个父窗口Mainframe和一个子窗口SubFrame。通过将SubFrame设置为MainFrame的子容器,子窗口将显示在父窗口的下方。

这是一个简单的示例,实际应用中可以根据需要进行更复杂的布局和设计。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Java AWT 图形界面编程】使用小键盘按键缩放 Canvas 画布中绘制的背景图像 ( 键盘按键监听 + 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

一、键盘按键监听 - 要点分析 ---- 如果要为 Java AWT 界面编程的应用设置键盘按键监听 , 必须为 Frame / JFrame 窗口设置键盘监听 , 为组件设置是无效的 ; 下面是设置键盘监听的核心代码...绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 在 【Java AWT 图形界面编程】Canvas 中绘制超大图片 ( 使用鼠标拖动查看全图 | 设置 JFrame...MouseWheelListener | Canvas 中绘制图像并设置图像大小 ) 博客中 , 使用缩放背景图像的方式 , 实现缩放效果 , 并同时福袋鼠标指针拖拽效果 ; 本博客中实现的案例 , 在上面的基础上...窗口 JFrame frame = new JFrame("Large Canvas"); // 设置窗口关闭行为 点击右上角关闭按钮 关闭窗口并退出应用...frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 创建画布 LargeCanvas canvas = new

1.8K20
  • JAVA学习中Swing部分JDialog对话框窗体的简单学习

    java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame...javax.swing.JLabel; import javax.swing.WindowConstants; /**  * 1:JDialog窗体时Swing组件中的对话框,  * JDialog的功能就是是从一个窗体中弹出另一个窗体...,就像是在使用浏览器时弹出的确定对话框一样  *  * 2:JDialog窗体和JFrame窗体类似,在使用时也需要调用getContentPane()方法将  * 窗体转化为容器,然后在容器中设置窗体的特性...jf=new JFrame();//实例化JFrame对象         Container container=jf.getContentPane();//将窗体转化为容器         JButton...{     public void MyFrame(){         JFrame jf=new JFrame();//实例化一个JFrame对象         Container container

    1.8K70

    高级Swing 组件

    当用户选定树节点时,某些信息就会显示在另一个窗口中。 若要取得这样的运行特性,你可以安装一个树选择监听器(tree selection listener)。...请实现下面3个方法。...static final int​ ​WIDTH​ = 400; ​private static final int​ ​HEIGHT​ = 200; } 运行结果见图13.9 ​表格模型​ 在上面这个示例代码中...private int​ maxRate; ​private static double​ ​INITIAL_BALANCE​ = 100000.0; } 运行结果见图13.10 ​排序过滤器​ 在上面的两个示例代码说明了这样一个问题...在本节中,我们将要介绍另一个非常有用的技术,即过滤器模型(filter model),它可以用于显示来自另一个表格的,采用另一种格式的信息。在我们的示例中,我们将要对表格中的各个行进行排序。

    6910

    《Java 2 图形设计卷Ⅱ- SWING》第2章 Swing的基本知识

    因此,应当总是使用JApplet和JFrame来实现Swing的小应用程序和应用程序。  ...幸运的是,Swing提供了一个机制,它迫使弹出式菜单是重量组件,这样,它们就不会在重量组件下面弹出来。...如果一个内部窗体与另一个内部窗体重叠,则下面的内部窗体的重量画布将会使上面的内部窗体的一部分变模糊,因为重量画布的层序比轻量内部窗体的层序高。  ...其效果是允许事件派发线程调用另一个线程中的任意一个代码块。  ...如果在另一个操作能够在另一个线程上执行之前必须从一个组件获取信息,则InvokeAndWait方法是很有用的。   例如,例2-14列出的小应用程序总是更新进度条的值而不管该新值是否与当前的值相同。

    2.5K20

    JAVA学习中Swing概述中的JFrame学习

    ,JDialog  *  *3:JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些  *Swing组件的容器  *  *4:读者大致应该有这样一个概念  *... * @author biexiansheng  *  */ /** 实例为简单学习JFrame */ public class JFrameTest extends JFrame{//定义一个类继承...JFrame类     public void CreateJFrame(String title){//定义一个CreateJFrame方法         JFrame jf=new JFrame...        JLabel jl=new JLabel("这是一个JLabel标签窗体");//实例化JLabel对象         //设置字体居中显示,下面两行代码功能一样         jl.setHorizontalAlignment...        container.add(jl);//将标签添加到容器中         container.setBackground(Color.RED);//设置容器的背景颜色         //下面设置窗体的一些格式

    1.6K90

    如何在Java中使用Table

    以下是如何使用数组在Java中创建表: JTable(Object[][] rowData, Object[] columnNames) 下面是一些示例代码,展示了如何用Java创建一个表并填充数据:...另一个值得关注的问题是,如果您在数据库对象中查询特定值,则必须将所有值复制到数组或向量中。 为了避免这些问题,您可以使用模型创建表格。 如何在Java中使用模型创建表 首先,了解如何处理表数据很重要。...下面的代码示例展示了如何在Java中使用表模型: import javax.swing.*; import javax.swing.table.*; import java.awt.*; class...TableUsingModel{ public static void main(String args[]){ JFrame frame = new JFrame();...下面是一些示例代码,说明如何在Java中设置表的列宽: TableColumnModel columnModel = table.getColumnModel(); columnModel.getColumn

    2.2K40

    Java进阶08 GUI

    图形的理解 看下面一个图片: ? KTurtle绘制。参看把你的孩子打造成为码农 可以看到,图中有一个房子,房子上有窗户和门,窗户上有条纹,门上有把手,此外图像外还有一只小乌龟。...frame = new JFrame("HelloWorld"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);...图形树 我们利用add()方法,将一个图形元素加入到另一个元素中。通过这样的组合,所有的图形元素构成一个树状数据结构,这棵树表示了图像元素之间的隶属关系(containment hierarchy)。...图形树 在程序中,我们首先创建了JFrame对象。JFrame是top-level container,也就是图形树的根。JFrame默认包含有Content Pane。...frame = new JFrame("HelloWorld"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    1.8K70

    Java-GUI 编程之 Swing

    相比之下,在 AWT 图形界面中,由于控制组件外观的对等类与具体平台相关 ,因此 AWT 组件总是具有与本地平台相同的外观 。...每个 Swing组件的UI代理的类名总是将该 Swing 组件类名的 J 去掉,然后在后面添加 UI 后缀 。 UI代理类通常是一个抽象基类 , 不同的 PLAF 会有不同的UI代理实现类 。...以 JButton 为例,其 UI 代理的继承层次下图: ​ ​ 如果需要改变程序的外观风格, 则可以使用如下代码: //容器: JFrame jf = new JFrame(); try {...JFrame 也被更新, JFrame 是一个特殊的容器 , JFrame 依然部分依赖于本地平台的图形组件 。...4.关闭JFrame窗口,也无需监听器,只需要调用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)方法即可,更简单。

    2.4K10

    Swing常用组件

    代码示例 下面是一个简单的JCheckBox的使用示例: import javax.swing.*; import java.awt.*; import java.awt.event.*; public...代码示例 下面是一个使用JRadioButton的示例代码: import javax.swing.ButtonGroup; import javax.swing.JFrame; import javax.swing.JLabel...下面是JList类中一些常用的成员方法: JList(Object[] listData): 创建一个JList对象,传入一个Object数组作为列表数据。...代码示例 下面是一个使用JList的示例代码: import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener...然后,我们创建了两个按钮,一个用于添加项目,另一个用于删除选定的项目。当点击添加按钮时,会弹出一个对话框,要求用户输入新项目的名称,并将其添加到列表中。当点击删除按钮时,会删除选定的项目。

    11710

    java swing项目桌面软件还是蛮香的,至少有了我自己的桌面软件|Java 开发实战

    下面就Jtable的使用,好好整理了一番,途中参考的文章我都会放在下面列出,读者可以自己参考**JTable结构梳理JTable=TableHeader+TableColumn顾名思义我们知道表格是由表头和表列组成的...但是JTable中如果想让表头显示仅仅将JTable加入Jpanel或者Jframe中是不行的,我这里提供两种方式实现1、分别将TableHeader和TableColumn加入控件中单独的显示,这种情况不常见...众多周知jtable中常用的两种构造函数一个是数组另一个是vector,这两种构造函数中都是采用了匿名内部类实现tablemodel,前者用的是AbstractTableModel,后者是DefaultTableModel...jtable数据的CURD在上面我们继承了AbstractTableModel,这里面有对数据的CURD操作if("增加".equals(command)){List data = getData...下面请随我一起看看源码吧:/** * Returns Object.class regardless of columnIndex.

    40210

    Swing图形界面程序设计.1Swing概述

    AWT是Abstract Window Toolkit抽象窗口工具集的缩写,目的是为了让开发人员使用AWT开发出适用于所有系统的图形界面,但是在旧的JDK版本中目标没有达到,在实际使用中,使用AWT设计的界面在不同平台太上会呈现不同的运行效果...顶层容器主要有Jframe、Japplet和Jdialog等,可以独立存在,具有放大、缩小、移动等功能。...在Swing组件类中,除JFrame、JApplet和JDialog都是JComponent类的子类,例如JButton、JTextArea、JList和JMenu等。...Swing结构图 Window类是不依赖于其他容器存在的窗口,有两个子孙类JFrame和JDialog,在Java GUI应用程序开发中,一般独立应用程序主要使用窗口框架JFrame作为容器,JDialog

    14610

    JAVA学习Swing章节标签JLabel中图标的使用

    ; import java.awt.Container; import java.awt.Graphics; import javax.swing.Icon; import javax.swing.JFrame...jf=new JFrame();//创建一个JFrame窗口 Container container=jf.getContentPane();//将窗口转换为容器 container.setBackground...第二直接从图片源创建图表 * 第三除了可以直接从图片源创建图表之外,还可以为这个图标添加简短的描述 * 第四利用位于计算机网络上的图像文件创建图标 */ import javax.swing.JFrame...{ public MyImageIcon(){ JFrame jf=new JFrame();//创建一个窗体 Container container=jf.getContentPane...//该方法的参数是imageButton.jpg,这个路径是相对于MyImageIcon类文件的 //所以可将imageButton.jpg图片放在和此类同一个文件夹下面

    1.9K60
    领券