gpt4 book ai didi

java - JTabbedPane 随机显示自身

转载 作者:行者123 更新时间:2023-11-30 05:08:23 24 4
gpt4 key购买 nike

我遇到的问题对我来说很奇怪,因为我正在一步一步正确地做每件事(在我看来),最后当我可以说我完成了程序的一部分时,它似乎取笑了我。实际的问题是,在我创建的 GUI 中,我使用了 JPanel,然后将其放入 JTabbedPane 中,最后将其放入 JFrame 中。一切都很好,除了有时无法正常工作之外。我知道这听起来很奇怪,但是在运行程序后,一旦我得到了我想要的东西(带有选项卡式 Pane 的框架,其中包含带有一些内容的面板),然后当我再次运行它时,它要么再次显示正确的内容,要么只是空框架。最糟糕的是,它是如此随机,我不知道什么可能是错误的,我什至不知道我到底应该谷歌什么来找到它。代码是:

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;

public class GUI extends JFrame {

JFrame frame = new JFrame("WakeOnLan script generator");
JPanel panel1 = new JPanel(null);
JTextArea text; //= new JTextArea("test");
JScrollPane scroll = new JScrollPane();
JButton but = new JButton("test");
JTabbedPane tab = new JTabbedPane();

public GUI() {

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
int w = frame.getSize().width;
int h = frame.getSize().height;
int x = (dim.width-w)/3;
int y = (dim.height-h)/4;

frame.setSize(500,500);
frame.setLocation(x,y);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setLayout(null);

createTab1();

tab.addTab("Tab 1", panel1);
tab.setVisible(true);
tab.setBounds(0, 0, 500, 500);

frame.add(tab);

}

public void createTab1(){

text = new JTextArea("test");
text.setVisible(true);

scroll.setViewportView(text);
scroll.setBounds(10,10,465,300);

panel1.setLayout(null);
panel1.add(scroll);
panel1.setVisible(true);
panel1.setSize(500,500);
//panel.setBackground(Color.blue);
}

}

然后我只是在其他类的 main 方法中运行它:

public class GUIStarter {

public static void main(String[] args) {

GUI start = new GUI();

}

}

那么有人可以给我一个答案或者只是一个提示吗?谢谢。

最佳答案

您应该在将所有组件添加到 JFrame 后调用frame.setVisible(true)。因此,请尝试将其移至构造函数的末尾。

或者,您可以在添加所有组件后调用 frame.validate()

关于java - JTabbedPane 随机显示自身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4303985/

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