Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / непонятно с Frame / 8 сообщений из 8, страница 1 из 1
22.08.2005, 15:09
    #33228105
vaha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
Здрасте, что то не могу никак дойти, в чем дело. идея простоя - есть класс в котором существует таймер, по которому накручивается счетчик. есть второй класс Frame, который запускается из первого и должен отображать этот счетчик. счетчикидет, а во фрейме ничего не меняется, такое ощущение что он не перерисовывается. помогите разобраться, вот исходники:
--------------------------------------------------------------------------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 public   class  Frame1  extends  JFrame  implements  ActionListener{
    JPanel contentPane;
    Label label =  new  Label();
    BorderLayout borderLayout1 =  new  BorderLayout();

     public  Frame1() {
         try  {setDefaultCloseOperation(EXIT_ON_CLOSE);
            jbInit();
        }  catch  (Exception exception) {exception.printStackTrace();}
    }

     public   void  jbInit()  throws  Exception{
        contentPane = (JPanel) getContentPane();
        contentPane.add(label, java.awt.BorderLayout.CENTER);
        setSize( new  Dimension( 200 , 100 ));
        label.setText(Integer.toString(tester.val)+"-1111111111");
        label.repaint();
        label.setVisible(true);
    }
     public   void  actionPerformed(ActionEvent e){
        tester.val =  tester.val+ 1 ;
        }


}
-------------------------------------------------------------------------------

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
 public   class  tester {
     static   int  val =  1 ;
     public  tester() {
        Frame1 frame =  new  Frame1();
        Timer t =  new  Timer( 10 ,  new  deystvo());
        t.start();
        frame.setVisible(true);
    }

     public   class  deystvo  implements  ActionListener{
         public   void  actionPerformed(ActionEvent e){
            System.out.println(tester.val);
            tester.val =  tester.val+ 1 ;
        }
    }

     public   static   void  main(String[] args) {
        tester t =  new  tester();
    }
}
...
Рейтинг: 0 / 0
22.08.2005, 15:55
    #33228240
gaper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
Ваш фрейм ничего не знает о счётчике, а таймер ничего не знает о фрейме. Их надо как-то познакомить друг с другом. :)
...
Рейтинг: 0 / 0
22.08.2005, 18:32
    #33228711
AciD_v
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
Можешь попробовать так хотя бы:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
 public   class  tester {
     static   int  val =  1 ;
    Frame1 frame;

     public  tester() {
        frame =  new  Frame1();
        Timer t =  new  Timer( 10 ,  new  deystvo());
        t.start();
        frame.setVisible(true);
    }

     public  setValue( int  value) {
        val = value;
        frame.label.setText(String.parseInt(val));
        frame.invalidate();
    }

     public   class  deystvo  implements  ActionListener{
         public   void  actionPerformed(ActionEvent e){
            System.out.println(tester.val);
            tester.setValue(tester.val+ 1 );

        }
    }

     public   static   void  main(String[] args) {
        tester t =  new  tester();
    }
}
...
Рейтинг: 0 / 0
23.08.2005, 09:09
    #33229177
vaha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
gaperВаш фрейм ничего не знает о счётчике, а таймер ничего не знает о фрейме. Их надо как-то познакомить друг с другом. :)

тоесть как это не знает? он рождается в конструкторе тестера.
Ну хорошо как я могу его познакомить?
...
Рейтинг: 0 / 0
23.08.2005, 09:17
    #33229185
vaha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
[quot AciD_v]Можешь попробовать так хотя бы:

непонимаю а чем твой тестер принципиально отличается от моего?
...
Рейтинг: 0 / 0
23.08.2005, 09:20
    #33229187
Боц!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
vahaнепонимаю а чем твой тестер принципиально отличается от моего?frame.invalidate();
...
Рейтинг: 0 / 0
23.08.2005, 10:46
    #33229379
vaha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
Боц! vahaнепонимаю а чем твой тестер принципиально отличается от моего?frame.invalidate();
да, я заметил. подставил это в свой код, но ничего хорошего это не принесло. да и судя по документации эта строчка ничего особенного не несет "Invalidates the container. The container and all parents above it are marked as needing to be laid out. This method can be called often, so it needs to execute quickly."
...
Рейтинг: 0 / 0
24.08.2005, 10:14
    #33231196
vaha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
непонятно с Frame
вобщем сам разобрался, благодаря другам...
надо было просто перерисовывать фрейм, переопределив метод frame1.repaint()
всем спасибо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / непонятно с Frame / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]