我遇到了一个有趣的事情...... null 对象的一切顺利当我在构造函数中添加标签
public class TPane extends JTabbedPane
{
public TPane(ImageIcon iconA,ImageIcon iconB)
{
this.addTab("A",iconA,null);
this.addTab("B",iconB,null);
}
}
但是当我尝试在另一个对象中添加标签时,如
public class AClass
{
public void addNewTab(TPane tp, ImageIcon icon)
{
tp.addTab("C",icon,null);//<-- contains null
}
}
...由于 null ,它不会添加标签。好的,如果我更改 null ,让我们说新的JLabel()代码正常工作:S
以上是以前的对象用法......
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);
}
});
}
}
所以我的问题是如何动态地将空对象添加到JTabbedPane?
赞赏任何有用的评论
答案 0 :(得分:3)
我不确定这是不是问题。我已成功尝试过,请参阅下面的示例及其代码(尽管这是一个病态示例):
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);
}
}