| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > JTextArea и работа с ним |
| Автор: DeadlyAngel 21.12.2011, 16:08 |
| хмм! опять у меня ступор!! всётаки ощущается малые знания ООП есть вот такой код: FrameMy(int x, int y) { Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screenSize=kit.getScreenSize(); int lx=screenSize.width; int ly=screenSize.height; int w=650; int h=615; setBounds(x*lx/100-w/2,y*ly/100-h/2,w,h); setResizable(false); MyPanel pan1=new MyPanel(); Container pan=getContentPane(); pan.add(pan1,BorderLayout.CENTER); pan1.AddText(null); // ГЛАВНОЕ ЗДЕСЬ ПИШЕШЬ - ВСЁ ДОБАВЛЯЕТСЯ, А В ТАЙМЕРЕ НЕТ((((((((((((( } } //============================================================================ class MyPanel extends JPanel { private Image im,c1,c2; private int yy1,yy2; public MyPanel() //Конструктор визуального оформления контейнера { yy2=480; yy1=480; try { im=ImageIO.read(new File("road.gif"));// Загрузка картинок с проверкой на наличие изображения c1=ImageIO.read(new File("car1.gif")); c2=ImageIO.read(new File("car2.gif")); } catch(IOException exeption) {System.out.println("can't open image");} setLayout(new FlowLayout(FlowLayout.LEFT,10,5)); JButton BT=new JButton("Запуск"); //Создание компонента JButton BTC=new JButton("Закрыть"); final JTextArea text=new JTextArea(33,42); JScrollPane SP=new JScrollPane(text); add(BT); add(BTC); BTC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { System.exit(0); //Обработчик закрытия приложения } } ); BT.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { Timer timer=new Timer(); TimerTask task=new MyTask(); timer.schedule(task, 1000, 1000); } } ); } public void paintComponent(Graphics g) { g.drawImage(im,485,40,null); g.drawImage(c1,506,yy1,null); g.drawImage(c2,580,yy2,null); } public void update(int x,int y) { yy1=x; yy2=y; repaint(); } public void AddText(String textinp) { final JTextArea text=new JTextArea(33,42); JScrollPane SP=new JScrollPane(text); text.append(textinp); add(SP); } } //============================================================================ class MyTask extends TimerTask { public void run() { } } как в таймере вызвать функцию AddText из класса MyPanel чтобы она добавила текст в JTextArea пробывал так - class MyTask extends TimerTask { public void run() { MyPanel p=new MyPanel(); p.AddText("ПРИВЕТ"); } } не работает да и по идее не должно - создаю объект, но не добавляю его, а если добавлять, то после каждого хода таймера он будет заново добавляться (вроде правильно рассуждаю), так вот, как заставить этот метод работать |
| Автор: DeadlyAngel 24.12.2011, 21:42 |
| решил, объявил как глобалку и применил всё! тема закрыта! |