2014-03-07 3 views
0

удара я написал код в Java:Выполнение некоторых действий после нажатия

import java.applet.*; 
import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
public class ProstyApplet extends Applet 
{ 
    Button b1 = new Button("BUTTON"); 
    @Override 
    public void init() 
    { 
     System.out.println("START"); 
     b1.addActionListener(new B1()); 
     add(b1); 
    } 
    @Override 
    public void paint(Graphics g) 
    { 
     g.setColor(Color.red); 
     g.drawOval(150,150,100,100); 
    } 
    class B1 implements ActionListener 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
      //here I want to draw rectangle 
     } 
    } 

} 

Я создал кнопку B1 и я создал ActionListener для B1. Я хочу, чтобы моя программа рисовала прямоугольник, когда я нажимаю на него, но у меня проблема с использованием методов, repaint(). Как рисовать прямоугольник после нажатия кнопки?

+0

Не могли бы вы объяснить, какая у вас проблема? – joragupra

+0

@joragupra Я просто не знаю, как рисовать прямоугольник после нажатия кнопки. Я искал в Интернете, но не мог найти примеров, которые могут мне помочь. –

+2

Прежде всего, используйте Swing, а не AWT. Затем следуйте инструкциям по использованию 1) [JButtons] (http://docs.oracle.com/javase/tutorial/uiswing/components/button.html), 2) [ActionListeners] (http: // docs. oracle.com/javase/tutorial/uiswing/events/actionlistener.html) и 3) [живопись с Swing] (http://docs.oracle.com/javase/tutorial/uiswing/painting/index.html). Тогда дайте ему идти! –

ответ

2

Вот как это делается. Методы paint() должны нарисовать список вещей для рисования. Метод actionPerformed() должен просто добавлять, удалять или изменять вещи для рисования, а затем запрашивать апплет для перерисовки. Затем методы paint() будут называться AWT, будут перебирать все, что нужно рисовать, и рисовать их.

+0

Спасибо. Я понял. Но не могли бы вы объяснить, как изменить метод paint()? –

+1

Краска() должна получить прямоугольник (ы) из списка вещей для рисования и нарисовать прямоугольник (ы). Прочтите javadoc Graphics. –

+1

@MarcinMajewski см. [Этот ответ] (http://stackoverflow.com/a/22123304/2587435). Вы можете добавлять объекты в 'List' в' actionPerformed', затем 'repaint()'. Вы _don't_ _ «изменяете» _ 'paint', вы просматриваете« List »в методе' paint', как показано в примере. –

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