2015-04-09 5 views
-1

У меня проблема с данными внутри ячейки на выбранной вкладке, что содержит JTable, где я хочу делать вычисления. Я сделал 3 вкладки с 3 таблицами, каждая ячейка моей таблицы имеет целые числа для тестов. Я хочу выбрать вкладку с индексом = 1, а затем попытаться сделать легкую формулу вроде sum (x + y), ее работу, конечно, но не для данных из index = 1, а для lastIndex моего JTabbedPane. Может ли кто-нибудь сказать мне, как решить эту проблему?JTabbedPane, данные внутри JTable

public class TabbedTable extends FormPanel implements ChangeListener{ 

private JTabbedPane jTabbedPane; 
private int spreadCount; 
private TaskPane taskPane; 
private MultiOptionPane multiOptionPane; 
private SpreadSheet[] spreadSheet; 

public TabbedTable(String col,String row){ 
    super(col, row); 
    initializePanel(); 
    initializeTaskPane(); 
    this.setBorder(BorderFactory.createBevelBorder(1, Colors.MyGray.color().darker(), Colors.MyGray.color().brighter())); 


    jTabbedPane.setUI(new TabbedUI()); 
    jTabbedPane.addChangeListener(this); 
    jTabbedPane.setFont(Fonts.Calibri.font()); 
} 


private void initializePanel(){ 
    this.spreadCount = 3; 
    this.createtabbedPane(); 
} 


private void createtabbedPane(){ 
    jTabbedPane = new JTabbedPane(); 
    taskPane = new TaskPane(); 
    spreadSheet = new SpreadSheet[spreadCount]; 

    for(int i = 0 ; i < spreadCount ; i ++){ 
     spreadSheet[i]= new SpreadSheet(20,20,i); 
     jTabbedPane.addTab(spreadSheet[i].getTitle(), spreadSheet[i].getScrollPane()); 
    } 

    this.addXY(taskPane, 1, 2); 
    this.addXY(jTabbedPane, 2, 2); 

} 

}

screen 3 screen 4

screen 1 screen 2

Class diagram

+1

Это, скорее всего, проблема с объектом «Электронная таблица», который вы используете, а не с JTable. Пожалуйста, предоставьте более подробную информацию о том, что этот класс в точности, поскольку у нас нет всей информации, чтобы определить, что происходит. – Gnoupi

+0

@Gnoupi Spreadsheet - это мой компонент на основе модели JTable mvc. Я действительно должен показать вам код этой причины, он большой, и он отлично работает для одной вкладки без проблем, но если вы хотите видеть код без проблем. –

+1

Вам не нужно показывать все, но проблема, вероятно, есть, поскольку я ничего не вижу в коде, который вы скопировали. Единственное, что меня интересует, это целое число в параметре конструктора. Интересно, для чего это. Кроме того, убедитесь, что у вас нет статического элемента в вашем вычислительном коде, что приведет к тому, что вы получите одинаковый результат в разных экземплярах, как это выглядит на ваших снимках экрана. – Gnoupi

ответ

1

Для полноты картины, я положу мой комментарий как фактическая ответ.


В коде не отображается ничего плохого. В идеале нам нужно увидеть, что происходит в классе Spreadsheet.

На скриншоте, похоже, что у вас одинаковое значение для обеих вкладок, на том же месте. Если это происходит каждый раз, это может указывать на то, что у вас есть проблема со статическими значениями, так как ваши вызовы конструкторам хорошо разделены. Поэтому вы должны изучить это.

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