jgoodies对JTabbedPane没有影响

时间:2015-11-13 08:03:23

标签: java swing jgoodies

我在我的项目中使用jgoodies。它仅适用于某些组件。

Look at my project,请。

enter image description here

正如您所见,JButton,JTextField,JLabel,JFrame已成功修改。但JTabbedPane和JRadioButton尚未修改。 Jgoodies对他们没有影响。当用户选择菜单项时创建JTabbedPane。你可以在这段代码中看到它:

item.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            createTabbedPane();
            fieldForName.requestFocus();
        }

    });

在这个ActionListener中,我调用创建JTabbedPane的方法createTabbedPane();

private static void createTabbedPane() {
    taskTabbedPane.setBounds(50, 50, 1000, 550);
    taskTabbedPane.addTab("Задача", createTasksMainInfoPanel());
    taskTabbedPane.addTab("Данные", null);
    taskTabbedPane.setEnabledAt(1, false);
}

我设定了主要方法:

public static void main(String[] args) {
    // TODO Auto-generated method stub
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            try {
                UIManager.setLookAndFeel(new Plastic3DLookAndFeel());
            } catch (UnsupportedLookAndFeelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            createAndShowGui();
        }
    });

}

我做错了什么?

2 个答案:

答案 0 :(得分:0)

我决定了我的问题。我找到了2个解决方案 第一个解决方案是添加此代码:

taskTabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);

另一个解决方案是添加此代码:

SwingUtilities.updateComponentTreeUI(taskTabbedPane);

谢谢大家的帮助

答案 1 :(得分:0)

在我看来,JTabbedPane是在安装JGoodies L& f之前创建的。这应该解释为什么更新组件树会影响JTabbedPane UI委托。您的方法#createTabbedPane不会创建JTabbedPane,它只是配置它。

不需要更改选项卡布局策略。只有在运行时更改L& f时才需要更新组件树。

顺便说一下。所有Swing初始化必须在EDT中进行,因此有必要在EDT中创建GUI。