繁体   English   中英

如何在JPanel中使用JTabbedPane?

[英]How to use JTabbedPane inside JPanel?

我的程序需要在JTabbedPane内部具有可滚动的JTextArea ,并且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);

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

我为你写了一个例子

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();
}
}

结果如下所示

在此处输入图片说明

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM