2013-11-21 3 views
0

Я создаю tabbedpaneКак изменить свойства компонента JTabbedpane во время выполнения?

tabs= new JTabbedPane(); 
tabs.addChangeListener(new ChangeListener() { 
    @Override 
    public void stateChanged(ChangeEvent e) { 
      JTabbedPane sourceTabbedPane = (JTabbedPane) e.getSource(); 
      int index = sourceTabbedPane.getSelectedIndex(); 
      sourceTabbedPane.getTabComponentAt(index).getComponentAt(0).setForeground(Color.RED); 

}); 

tabs.setTabComponentAt(0, new JLabel("tab1")); 
tabs.setTabComponentAt(0, new JLabel("tab2")); 

Я получаю эту ошибку:

Метод getComponentAt (Point) в компоненте типа не применяется для аргументов (интермедиат)

Как Я достаю ЭТИКЕТКУ, на которую я положил выбранный таб? Я хочу установить передний план на ярлыке.

EDIT 1 

Я также получаю ошибку нулевого указателя во время выполнения.

ответ

0

Component.getComponentAt принимает объект Point или два целых числа как int x, int y, что он ищет дочерние компоненты в этом месте.

http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html

+0

Да. Я читал это раньше, и я пробовал (0,0) и (1,1) - не работал – ManInMoon

+0

Является ли ваша JLabel в позиции (0, 0)? Это не индекс, физическое местоположение в пикселях. – regulus

+0

действительно вижу мое редактирование. Кажется, я получаю ошибку с нулевым указателем. Я предполагаю, что это должно быть на «index» – ManInMoon

 Смежные вопросы

  • Нет связанных вопросов^_^