java - JTabbedPane 组件占据整个窗口

标签 java swing jtabbedpane

我是 Java 和整个 swing 开发的新手。我正在开发一个带有三个选项卡的窗口,并将每个组件添加到这些选项卡中。我首先向第三个选项卡添加一个文本字段,但它占据了整个选项卡。我确信如果我添加其他组件,它会腾出空间,但是有没有办法使它最初不会占用整个选项卡式 Pane ?

package literature.windows;
import java.awt.*;
import javax.swing.*;

public class MainWindow extends JFrame {

JPanel storiesPanel = new JPanel();
JPanel plotPanel = new JPanel();
JPanel charactersPanel = new JPanel();

JTextField addCharacterTextField = new JTextField("Enter Character's Name", 25);

public MainWindow() {

    setSize(800, 600);

    JTabbedPane tabs = new JTabbedPane();
    tabs.addTab("Stories", storiesPanel);
    tabs.addTab("Plot", plotPanel);
    tabs.addTab("Characters", charactersPanel);
    add(tabs);

    tabs.setTabComponentAt(2, addCharacterTextField);

    setVisible(true);
    }
}

最佳答案

您当前正在为该选项卡设置整个选项卡组件。相反,您需要将 JTextField 添加到该选项卡的容器/面板中。替换

tabs.setTabComponentAt(2, addCharacterTextField);

charactersPanel.add(addCharacterTextField);

关于java - JTabbedPane 组件占据整个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14675997/

相关文章:

java - 暂停方法的执行,直到回调完成

java - 使用java swing

java - Eclipse 中的 windowbuilder,不确定如何显示窗口

java - 我如何获得 JtabbedPane 内的 jPanel

java - 是否可以更改 JTabbedPane 的布局?

java - 如何移动选项卡式 Pane 的位置

java - java中将秒转换为时间戳

java - Java中两个对象包的联合

java - 如何在 JFrame 退出时运行终止命令?

java - 由于 BufferStrategy,KeyEvent 未生成