Java 如何在JPanel中使用JTabbedPane?

Java 如何在JPanel中使用JTabbedPane?,java,swing,jpanel,jtabbedpane,Java,Swing,Jpanel,Jtabbedpane,我的程序需要有一个JTextArea,在JTabbedPane内滚动,JTabbedPane保存在JPanel内。下面是我测试过的一段代码 private JTabbedPane jtab; private JScrollPane jsp; private JTextArea jtxta; jtab = new JTabbedPane(); jtxta = new JTextArea(); jsp = new JScrollPane(jtxta); jtab.addTab("[Untitle

我的程序需要有一个
JTextArea
,在
JTabbedPane
内滚动,
JTabbedPane
保存在
JPanel
内。下面是我测试过的一段代码

private JTabbedPane jtab;
private JScrollPane jsp;
private JTextArea jtxta;

jtab = new JTabbedPane();
jtxta = new JTextArea();
jsp = new JScrollPane(jtxta);

jtab.addTab("[Untitle]", jsp);
main_jpn.add(jtab);

getContentPane().add(main_jpn, BorderLayout.CENTER);

但是程序运行时没有显示任何内容。我的程序需要什么?

确保将主组件和父组件的布局设置为BorderLayout

    JPanel main_jpn = new JPanel(new BorderLayout());
    setLayout(new BorderLayout());

我给你写了一个例子

import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;

public class Solution extends JFrame {

private static final long serialVersionUID = 1L;
private JTabbedPane jtab;
private JScrollPane jsp;
private JTextArea jtxta;

public Solution() {
    jtab = new JTabbedPane();
    jtxta = new JTextArea();
    jsp = new JScrollPane(jtxta);
    jtab.addTab("[Untitle]", jsp);
    jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    getContentPane().add(jtab, BorderLayout.CENTER);
    this.setSize(300,400);
    this.pack(); 
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
    new Solution();
}
}
结果如下所示


最重要的是,您需要设置滚动策略,使滚动始终显示。

要尽早获得更好的帮助,请发布或。
getContentPane().add(main\jpn,BorderLayout.CENTER)
getContentPane()
的调用在相当长一段时间内都是不必要的(Java 1.5?)。此外,通常建议不要扩展
JFrame
。只需使用一个实例。1)Swing和AWT GUI应该在EDT上启动。2) 优于
this.setSize(300400)
,建议在
JTextArea
构造函数和
pack()
框架中的行和列大小,然后再将其设置为可见。3) 我怀疑这与滚动窗格有多大关系。4) 很好的截图。:)<代码>此.设置大小(300400);这个包()你试过了吗?据我所知,应该把框架再缩小一点。。如果打包一个框架(是的,我们应该这样做),那么大小需要由组件(和边框)建议,最好通过为文本区域指定列和行来完成。。