我在JPanel中有一个JTabbedPane(顶部有水平选项卡),并且我希望此JTabbedPane的选项卡适合JPanel的整个宽度,因此,如果只有一个选项卡,则该选项卡将填充整个宽度;当有两个标签时,每个标签将恰好占一半,依此类推。
使用自定义JComponent作为选项卡的标题并设置PreferredSize并没有解决方案,因为JTabbedPanel似乎在标题组件周围放置了某种边框。
有没有比扩展和/或重写JTabbedPane的部分/全部更简单的解决方案?
(也许我应该补充一点,当我谈论标签时,我指的是这些导航组件,您可以单击以切换显示的组件,而不是组件本身。)
最佳答案
测试此代码:
public class Tabs extends javax.swing.JFrame {
public Tabs() {
initComponents();
}
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jTabbedPane1 = new javax.swing.JTabbedPane();
jPanel2 = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setLayout(new java.awt.BorderLayout());
jPanel2.setLayout(new java.awt.BorderLayout());
jTabbedPane1.addTab("tab1", jPanel2);
jPanel3.setLayout(new java.awt.BorderLayout());
jTabbedPane1.addTab("tab2", jPanel3);
jPanel1.add(jTabbedPane1, java.awt.BorderLayout.CENTER);
add(jPanel1);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tabs().setVisible(true);
}
});
}
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JTabbedPane jTabbedPane1;
}
关于java - 使Swing-JTabbedPane-Tab填充容器整个宽度的最简单方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4913225/