gpt4 book ai didi

java - 如何查看分层 Pane 内的组件

转载 作者:行者123 更新时间:2023-11-30 05:58:34 25 4
gpt4 key购买 nike

我在 JLayeredPane 中放置了两个组件,但无法使它们可见。这是一个相当MCV代码。如何在 layeredPane 中查看我的 JTextFieldJLabel

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EtchedBorder;

public class GUI extends JFrame {
JFrame mainframe = new JFrame();
JPanel centrejPanel = new JPanel();
JTextField keyText;
JLabel jLabel;

public GUI() {

mainframe.setLayout(new BorderLayout());
mainframe.setSize(1200, 700);
mainframe.getContentPane().add(centrejPanel, BorderLayout.CENTER);

keyText = new JTextField("hello");
keyText.setOpaque(false);
keyText.setCaretColor(Color.BLACK);
keyText.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
jLabel = new JLabel("hello");
jLabel.setFont(new Font("Palatino", Font.BOLD, 18));
jLabel.setVerticalAlignment(JLabel.TOP);
jLabel.setForeground(Color.GRAY);
JLayeredPane layeredPane = new JLayeredPane();

layeredPane.add(keyText, 1);
layeredPane.add(jLabel, 0);

centrejPanel.getRootPane().add(layeredPane);

mainframe.setVisible(true);

}

}


public class Main {

public static void main(String[] args) {
GUI gui = new GUI();
}
}

最佳答案

//mainframe.setLayout(new BorderLayout());

不需要。框架内容 Pane 的默认布局管理器是 BorderLayout。

//mainframe.getContentPane().add(centrejPanel, BorderLayout.CENTER);

不要将空面板添加到框架的内容 Pane 中。只需将 LayeredPane 直接添加到内容 Pane 即可。

keyText.setBounds(0, 50, 100, 20);
...
jLabel.setBounds(0, 150, 100, 20);

JLayeredPane 使用空布局,因此您有责任设置添加到分层 Pane 中的每个组件的大小和位置。

//centrejPanel.getRootPane().add(layeredPane);

不要将分层 Pane 添加到根 Pane 。甚至不知道这是否有效,但无论如何,内容 Pane 只会覆盖分层 Pane 。

阅读 Swing 教程中关于 Using Top Level Containers 的部分查看所有框架层的结构。

mainframe.add(layeredPane);

只需将分层 Pane 直接添加到框架的内容 Pane 即可。阅读 How to Use LayeredPane 上的 Swing 教程了解更多信息和工作示例。

学习新概念或组件时,始终从教程中的示例开始。

关于java - 如何查看分层 Pane 内的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com