Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Компоненты в JTabbedPane


Автор: agR 26.4.2007, 23:52
Опять не перестаю удивлять своими вопросами (и сам удивляться) smile
Есть такая проблемка.... в одном классе я создаю JTextArea:
Код

        matBalanceArea = new JTextArea(30,50);
        matBalanceArea.setLineWrap(true);
        matBalanceArea.setWrapStyleWord(true);
        matBalanceArea.setEditable(false);
        matBalanceArea.setFont(new Font(null,0,14));
        scrollPane = new JScrollPane();
        scrollPane.setViewportView(matBalanceArea);
        scrollPane.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Результат розрахунків"));

надеюсь украинский язык никого не смутил smile (Диплом все таки, поэтому делаю на гос. языке).
Ну ладно, вернемся обратно в "джунгли"....
Сама панелька mainMatBalance добавляется в другую панель:
Код

main.add(mainMatBalance,0);
        main.add(strutPanel,1);
        main.add(scrollPane,2);

А эта панель уже добавляется в JTabbedPane:
Код

mainTab = new JTabbedPane(JTabbedPane.TOP);
                
        mainTab.addTab("Матеріальний баланс", null,createMatBalanceGUI());
        mainTab.addTab("Тепловий розрахунок здувочного конденсатора", null, createTeplRozrGUI());
        mainTab.addTab("Математична модель", null, createMatModelGUI());

Теперь в другом классе у меня будут производиться расчеты и мне необходимо будет результаты этих расчетов показать в JTextArea...... вот на этом и завис.
Пытался так:
Код

public class Calculating {
    public void calcMatBalance() {
        JTabbedPane mainTab = crTab.getTab(); //getTab() - метод, возвращающий JTabbedPane другого класса
        panel =((JPanel)mainTab.getComponentAt(mainTab.getSelectedIndex()));
        scroll = ((JScrollPane)panel.getComponent(2));
        area = ((JTextArea)scroll.getViewport().getView());
        area.append("asd"); //допустим хочу добавить текст
        area.revalidate();
    }
        
        
    private CreatingTab crTab = new CreatingTab();
    private JPanel panel;
    private JScrollPane scroll;
    private JTextArea area;
    }


Короче говоря, от этой штуки толку, как с козла молока  smile 
Помогите, плз.
П.С. Пойду читать основы Java smile


Автор: Torsdia 27.4.2007, 18:02
Как я тебя понимаю самому надо подобное писать, но сам пока в этом плаваю

Автор: goodday1941 27.4.2007, 19:48
Цитата(agR @  26.4.2007,  23:52 Найти цитируемый пост)
Код

public class Calculating {    
public void calcMatBalance() {      
  JTabbedPane mainTab = crTab.getTab(); 
//getTab() - метод, возвращающий JTabbedPane другого класса      
  panel =((JPanel)mainTab.getComponentAt(mainTab.getSelectedIndex()));    
    scroll = ((JScrollPane)panel.getComponent(2));        
area = ((JTextArea)scroll.getViewport().getView());   
     area.append("asd"); //допустим хочу добавить текст        area.revalidate();  
  }               
     private CreatingTab crTab = new CreatingTab();    
private JPanel panel;  
  private JScrollPane scroll; 
   private JTextArea area;    }

это не есть правильно

Правильно:

Передай на вход класса этот JTextArea да и все...

По пунктам:

У тебя есть:

Код

JTextArea a;


И у тебя есть класс с расчетами, к примеру такой:

Код

public class Test {
private JTextArea tmp;
public Test(JTextArea tmp){
this.tmp = tmp;}
setTextA(String g){
tmp.setText(g)
}
}



теперь класе где находиться твой JTextArea a создаем обьект класса Test:

Код

Test b = new Test(a);
b.setTextA("asfasf");


что изменет текст в JTextArea

PS.. зачем делать сложно простые вещи...

Автор: agR 27.4.2007, 22:49
После нескольких шаманских действий String пошел в JTextArea как ребенок в школу smile
Псб  smile 

Цитата(goodday1941 @  27.4.2007,  19:48 Найти цитируемый пост)
PS.. зачем делать сложно простые вещи...

Опыта нет, вот на грабли и наступаю  smile  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)