Java JTabbedPane-动态选项卡控件
我遇到了一件有趣的事。。。当我在构造函数中添加制表符作为Java JTabbedPane-动态选项卡控件,java,swing,Java,Swing,我遇到了一件有趣的事。。。当我在构造函数中添加制表符作为 public class TPane extends JTabbedPane { public TPane(ImageIcon iconA,ImageIcon iconB) { this.addTab("A",iconA,null); this.addTab("B",iconB,null); } } 但当我尝试在另一个对象中添加tab时,如 public class AClass { public void addNew
public class TPane extends JTabbedPane
{
public TPane(ImageIcon iconA,ImageIcon iconB)
{
this.addTab("A",iconA,null);
this.addTab("B",iconB,null);
}
}
但当我尝试在另一个对象中添加tab时,如
public class AClass
{
public void addNewTab(TPane tp, ImageIcon icon)
{
tp.addTab("C",icon,null);//<-- contains null
}
}
所以我的问题是如何将null对象动态添加到JTabbedPane
非常感谢任何有用的评论我不确定这是否是问题所在。我已经成功地尝试过了,请参见下面的示例及其代码(尽管这是一个病态示例):
我不确定这就是问题所在。我已经成功地尝试过了,请参见下面的示例及其代码(尽管这是一个病态示例):
首先,为什么要将null添加到JTabbedPane?如果您不想在选项卡中显示任何内容,只需添加一个空的JPanel。为什么要扩展它?请提供一个展示您描述的问题的示例。因为我只想使用JTabbedPane的选项卡。作为选项卡选项板,首先为什么要将null添加到JTabbedPane?如果您不想在选项卡中显示任何内容,只需添加一个空的JPanel。为什么要扩展它?请提供一个展示您描述的问题的示例。因为我只想使用JTabbedPane的选项卡。作为选项卡调色板(可怕的空图标)屏幕截图+1谢谢:)但是什么原因造成的?我使用JDK1.6,请添加一个[SSCCE](SSCCE.org)。这将有助于我们发现问题。(可怕的空图标)屏幕截图+1谢谢:)但是什么原因造成的?我使用JDK1.6,请添加一个[SSCCE](SSCCE.org)。这将有助于我们发现问题。
public class BClass extends JPanel
{
private AClass a=new AClass();
private TPane tp=new TPane();
JButton addTabButton=new JButton("add tab");
ImageIcon icon;
public BClass(Image image)
{
icon=new ImageIcon(image);
...
this.add(tp);
...
addTabButton.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
a.addNewTab(tp,icon);
}
});
}
}
package so;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
public class JTabbedEx extends JTabbedPane {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ImageIcon icon = new ImageIcon();
JTabbedPane tabs = new JTabbedPane();
tabs.addTab("Tab1", icon,null);
new AnotherClass().addTab(tabs, icon);
JFrame frame = new JFrame();
frame.add(tabs);
frame.pack();
frame.setVisible(true);
}
});
}
}
class AnotherClass {
public void addTab(JTabbedPane tabs, ImageIcon icon) {
tabs.addTab("Another tab", icon, null);
}
}