JTable и Look and Feels - PullRequest
       31

JTable и Look and Feels

1 голос
/ 24 декабря 2011

У меня небольшая проблема с изменением внешнего вида объекта. В моем приложении у меня есть

public class JavaCommander extends JFrame

и в этом классе у меня есть JTable, построенный по моей собственной табличной модели. Все работает отлично, но, как я уже сказал, есть проблема, когда я хочу изменить внешний вид. В строке меню у меня есть меню с доступным видом и ощущениями.

menuBar=new JMenuBar();
    JMenu lookMenu=new JMenu("Look and Feel");

    UIManager.LookAndFeelInfo[] info= UIManager.getInstalledLookAndFeels();
    ButtonGroup group=new ButtonGroup();

    for (int i=0;i<info.length;++i)
    {
        JRadioButtonMenuItem but=new JRadioButtonMenuItem(info[i].getClassName());
        but.addActionListener(new ActionListener()
        {

            public void actionPerformed(ActionEvent e) 
            {
                try {
                    UIManager.setLookAndFeel(e.getActionCommand());
                    SwingUtilities.updateComponentTreeUI(JavaCommander.this);
                    table.setShowGrid(true);
                } catch (ClassNotFoundException e1) {
                    e1.printStackTrace();
                } catch (InstantiationException e1) {
                    e1.printStackTrace();
                } catch (IllegalAccessException e1) {
                    e1.printStackTrace();
                } catch (UnsupportedLookAndFeelException e1) {
                    e1.printStackTrace();
                }

            }

        });
        lookMenu.add(but);
        group.add(but);
    }
    menuBar.add(lookMenu);

поэтому, когда я нажимаю на одну из кнопок, это должно изменить внешний вид моего приложения. Но когда я это делаю, все меняется, но сетка вокруг элементов в таблице отсутствует, поэтому мне нужно было добавить

table.setShowGrid(true);

это нормальное поведение, что сетка пропадает после изменения внешнего вида?

1 Ответ

4 голосов
/ 24 декабря 2011

это нормальное поведение, что сетка пропадает после изменения внешнего вида?

Некоторые PLAF не рисуют его.


Я как раз собирался дать горячую ссылку на некоторые примеры изображений таблиц в разных PLAF, в этот вопрос .Тогда я понял, что источник показывает ту же проблему, что и вы!

Я могу получить границы ячеек / линии сетки в любом баре PLAF Nimbus.Но после выбора Nimbus ни один из других PLAF больше не отображает границы ячейки.(

...