JPanel перекрашивает себя плохо - PullRequest
1 голос
/ 18 июля 2011

После вызова repaint() на JPanel из ActionListener для JCheckBox, JPanel имеет некоторые ... проблемы ... они исправляются при сворачивании и восстановлении, но это затрудняет мои клиенты. Есть идеи как это исправить?

enter image description here

Код ниже

            JCheckBox curr = new JCheckBox(choices.get(a));
            curr.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e)
                {
                    //System.out.println(((JCheckBox)e.getSource()).getText());
                    if (specs.getSelectedItem()!=null&&!specs.getSelectedItem().toString().isEmpty())
                    {
                        String strSpec = specs.getSelectedItem().toString();
                        if (strSpec.matches("\\w+\\s\\w+"))
                        {
                            Time x = GraphCreator.parseTime(strSpec);
                            GC.getGraph(x);
                            GC.getGraph(x, new Team(((JCheckBox)e.getSource()).getText()));
                        }
                        else
                        {
                            GC.getGraph(new Team(((JCheckBox)e.getSource()).getText()),strSpec.trim());
                        }
                    }
                    pane.repaint();
                }
            });

Ответы [ 2 ]

1 голос
/ 18 июля 2011

pane.validate() и pane.repaint() могут работать. Однако это только при добавлении и удалении компонентов, которые могут повлиять на макет.

1 голос
/ 18 июля 2011

трюк должен быть

pane.revalidate();
pane.repaint();
...