2016-03-03 4 views
-1

Я хочу, чтобы подтолкнуть/вызов выбранного значения Вкладки индекса из метода StateChanged к другому классу или частному способу, как я могу это сделать,Как нажимать/вызывать значение getSelectedIndex из метода StateChanged в другой метод/класс?

private class TabSelect implements ChangeListener { 
    @Override 
    public void stateChanged(ChangeEvent e) { 
     JTabbedPane source = (JTabbedPane) e.getSource(); 
     if (source.getSelectedComponent() != null) { 
      source.getSelectedIndex(); 

     } 

    } 
} 

Я хочу, чтобы подтолкнуть это индексное значение следующего способа (или другой открытый класс в том же пакете). Как это сделать?

private JPanel CreateSlice() { 

     JPanel Slice = new JPanel(); 
     Slice.setPreferredSize(new Dimension(550, 600)); 
     Slice.add(button); 
     return Slice; 

    } 

Это функция CreateSlice, в

private class TabPlus implements ActionListener { 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     JPanel panel = CreateSlice(); 
     String title = "Slice " + String.valueOf(pane.getTabCount()); 
     pane.insertTab(title, null, panel, null, pane.getTabCount() - 1); 
    } 
} 
+0

Точно так же вы передадите любую переменную между классами, используйте метод – MadProgrammer

+0

Спасибо @MadProgrammer, я сомневаюсь, что если вы можете мне помочь, я новичок и уже прошел целую неделю nk об этом. Я отправлю вопрос. – nothingSpecial

+0

[Передача информации методу или конструктору] (https://docs.oracle.com/javase/tutorial/java/javaOO/arguments.html) – MadProgrammer

ответ

0
@Override 
public void stateChanged(ChangeEvent e) { 
    JTabbedPane source = (JTabbedPane) e.getSource(); 
    if (source.getSelectedComponent() != null) { 
     int index = source.getSelectedIndex(); 
     CreateSlice(index); 
    } 

} 



public JPanel CreateSlice(int index) { 
     //do whatever you want with index 
     JPanel Slice = new JPanel(); 
     Slice.setPreferredSize(new Dimension(550, 600)); 
     Slice.add(button); 
     return Slice; 

    } 

обратите внимание, что ваш метод CreateSlice должен быть публичным

+0

Но я вызываю этот CreateSlice для создания панели в методе ActionListener, если я set int index как параметр, тогда он показывает ошибку там, Я даю эту часть в своем вопросе, – nothingSpecial

0
int index = source.getSelectedIndex(); // Save it to variable 

createSlice(index); // pass it into new method, follow camelCase for bestPractice 

private JPanel createSlice(int index) { 
    //your implementation 
} 
+0

Но My CreateSlice используется ActionListener для создания панелей. если я устанавливаю int index как параметр, там отображается ошибка. – nothingSpecial

+0

, так что вы хотите сделать с вашим индексом, создать другой открытый метод в классе. –

+0

Большое вам спасибо. У меня есть ситуация, так как я не знаю, как это сделать. Есть метод addTab для добавления вкладок с помощью кнопки «плюс», этот метод вызывает метод CreateSlice для создания вкладок. Теперь я хочу создать некоторые компоненты на этих вкладках. Эти панели могут иметь разные компоненты на разных вкладках. Могу я вам объяснить? Как я могу это сделать, любую идею? – nothingSpecial