如何在 JPanel 中使用 JTabbedPane?
How to use JTabbedPane inside JPanel?
我的程序需要有一个 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);
但是程序运行时没有任何显示。我的程序需要什么?
确保 main_jpn 和父组件的布局设置为 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();
}
}
结果如下图
最重要的是你需要设置滚动策略,保持滚动一直显示。
我的程序需要有一个 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);
但是程序运行时没有任何显示。我的程序需要什么?
确保 main_jpn 和父组件的布局设置为 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();
}
}
结果如下图
最重要的是你需要设置滚动策略,保持滚动一直显示。