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


Автор: DeadlyAngel 21.12.2011, 16:08
хмм! опять у меня ступор!! всётаки ощущается малые знания ООП smile 
есть вот такой код:

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("ПРИВЕТ");        
        }
}

не работает да и по идее не должно - создаю объект, но не добавляю его, а если добавлять, то после каждого хода таймера он будет заново добавляться (вроде правильно рассуждаю), так вот, как заставить этот метод работать smile 

Автор: DeadlyAngel 24.12.2011, 21:42
решил, объявил как глобалку и применил всё! тема закрыта!

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