Консультация № 183966
05.09.2011, 07:29
119.84 руб.
0 2 1
Здравствуйте! Решите пожалуйста задачу, код Java:
Созздать апплет с облаастью для рисования. Добавить кнопки для выбора цвета (каждому цвету соответствует своя кнопка), кнопку для очистки окна. Рисование на панели со скроллингом.

Обсуждение

давно
Профессионал
848
1596
07.09.2011, 09:20
общий
это ответ
Здравствуйте, Иван!
Код апплета в приложении. Работу в браузере можно посмотреть скачав прикрепленный файл.

Приложение:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;

public class DrawPanel extends Applet
{
private ScrollPane sp=new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
private Panel buttonsPanel =new Panel();
private Button buttonRed=new Button("Red");
private Button buttonBlue=new Button("Blue");
private Button buttonGreen=new Button("Green");
private Button buttonClear=new Button("Clear");
private int x,y;
private int wdt,hgt;
private BufferedImage bi;
private Graphics2D myScr;
private Color myClr=Color.black;
private Canvas c;

public void init()
{
wdt=getSize().width;
hgt=getSize().height;
ActionListener al=new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource().equals(buttonRed))
myClr=Color.red;
if(e.getSource().equals(buttonBlue))
myClr=Color.blue;
if(e.getSource().equals(buttonGreen))
myClr=Color.green;
if(e.getSource().equals(buttonClear))
{
myScr.clearRect(0,0,wdt,hgt);
c.repaint();
}
}
};
MouseListener c_ml=new MouseListener() {
public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e)
{
x=e.getPoint().x;
y=e.getPoint().y;
}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
};
MouseMotionListener c_mml=new MouseMotionListener() {
public void mouseDragged(MouseEvent e)
{
myScr.setColor(myClr);
myScr.drawLine(x, y, e.getPoint().x, e.getPoint().y);
x=e.getPoint().x;
y=e.getPoint().y;
c.repaint();
}
public void mouseMoved(MouseEvent e) {}
};
c=new Canvas()
{
public void update (Graphics g)
{
g.drawImage(bi, 0, 0, this);
}
};
AdjustmentListener adl=new AdjustmentListener()
{
public void adjustmentValueChanged(AdjustmentEvent e)
{
c.repaint();
}
};
bi = (BufferedImage)createImage(wdt, hgt);
myScr = bi.createGraphics();
myScr.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
buttonRed.addActionListener(al);
buttonBlue.addActionListener(al);
buttonGreen.addActionListener(al);
buttonClear.addActionListener(al);
buttonsPanel.add(buttonRed);
buttonsPanel.add(buttonBlue);
buttonsPanel.add(buttonGreen);
buttonsPanel.add(buttonClear);
this.add(buttonsPanel);
c.setSize(wdt, hgt);
c.addMouseListener(c_ml);
c.addMouseMotionListener(c_mml);
sp.add(c);
sp.getVAdjustable().addAdjustmentListener(adl);
sp.getHAdjustable().addAdjustmentListener(adl);
sp.setSize(wdt-150, hgt-150);
this.add(sp);
}
}
Прикрепленные файлы:
Неизвестный
08.09.2011, 08:52
общий
спасибо все работает
Форма ответа