AWT TextArea里面有JTabbedPane可视错误

时间:2013-04-25 17:29:40

标签: java swing textarea awt jtabbedpane

JTabbedPane main_tabbedPane = new JTabbedPane( JTabbedPane.TOP );
main_tabbedPane.setBorder( new EmptyBorder( 0, 0, 0, 0 ) );
main_tabbedPane.setBounds( 10, 76, 665, 473 );
main_tabbedPane.setVisible(false);

main_content.add( main_tabbedPane ); // main_content is a jpanel

然后我调用一个扩展JPanel的类构造函数

alphaStarter_tab = new AlphaStarterPnl();

其中包括TextArea(来自Java AWT而不是JTextArea)

public class AlphaStarterPnl extends JPanel {

 private TextArea outputTxtA;

 public AlphaStarterPnl(){

  outputTxtA = new TextArea("",4,50,TextArea.SCROLLBARS_VERTICAL_ONLY);
  outputTxtA.setFont(new Font("Tahoma", Font.PLAIN, 13));
  outputTxtA.setEditable(false);
  outputTxtA.setBackground(new Color(179,190,201));
  outputTxtA.setForeground(new Color(34,64,132));
  outputTxtA.setBounds(15, 133, 630, 300);
  add(outputTxtA);

 }
}

然后我将这个面板添加到选项卡式窗格

,这个面板(除了粘贴代码之外还有更多内容,但这并不重要)
main_tabbedPane.addTab( "Copy Files", null, alphaStarter_tab, null );

当我这样做时,尽管main_tabbedPane已设置为setvisible false,但TextArea不仅会弹出,而且还会出现在三个位置。 (也许在0,0坐标处出现一次,然后在设定的x,0坐标处出现,然后在设定的x,y坐标处出现。当我继续进行程序时,当第二个标签出现时,这个“丑陋内容的闪光”消失了补充说。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这里的问题可能是您正在混合轻量级组件(即JTabbedPane等Swing组件,带有'J'前缀的组件)和重量​​级组件(即AWT组件,如TextArea)。将这两种类型的组件一起使用可能会导致渲染问题。