dポイントプレゼントキャンペーン実施中!

アプレットを作りましたが、ウィンドウの大きさを変えた時にも描いたオブジェクトをrepaintを使って再描画させるのは
どのようにすればよいのでしょうか。
_______________________________
public class QQ_Oekaki extends Applet implements ActionListener
{
Graphics g;
Color col;

int w;
int h;

Button btnBlue;
Button btnYellow;

public void init()
{
g = getGraphics();

btnBlue = new Button("Blue");
this.add(btnBlue);
btnBlue.addActionListener(this);
btnBlue.setFont(new Font("SansSerif", Font.ITALIC, 10));
btnBlue.setForeground(Color.blue);

btnYellow = new Button("Yellow");
this.add(btnYellow);
btnYellow.addActionListener(this);
btnYellow.setFont(new Font("SansSerif", Font.ITALIC, 10));
btnYellow.setForeground(Color.yellow);

this.addMouseMotionListener
(
new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
int x = e.getX();
int y = e.getY();

g.setColor(Color.green);
g.setColor(col);
g.fillRect(x,y,5,5);
}
}
);
}

public void actionPerformed(ActionEvent ae)
{

if(ae.getActionCommand()=="Yellow")
{
col = Color.yellow;
}

if(ae.getActionCommand()=="Blue")
{
col = Color.BLUE;
}
}
}

A 回答 (1件)

質問の意味がよく分からないので、質問にはお答えしません。

それ以前に、アプレットの基本形/標準形を勉強してください。以下のアプレットをコンパイルし、動かしてみてください。参考URLは、http://を略します。
------------------------------------------------------
/* save and compile as QQ */
/*
<applet code="QQ" width="400" height="400"></applet>
*/
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class QQ extends Applet implements ActionListener{
Color col;
int ox, oy, nx, ny;
Button btnBlue;
Button btnYellow;

public void init(){
col = Color.lightGray; //ボタンが押される前の描画色

setBackground(Color.darkGray);

btnBlue = new Button("Blue");
add(btnBlue);
btnBlue.addActionListener(this);
btnBlue.setFont(new Font("SansSerif", Font.ITALIC, 10));
btnBlue.setForeground(Color.blue);

btnYellow = new Button("Yellow");
add(btnYellow);
btnYellow.addActionListener(this);
btnYellow.setFont(new Font("SansSerif", Font.ITALIC, 10));
btnYellow.setForeground(Color.yellow);

addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent e){
ox = nx;
oy = ny;
nx = e.getX();
ny = e.getY();
QQ.this.repaint();
}
});

addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
ox = nx = e.getX();
oy = ny = e.getY();
QQ.this.repaint();
}
});
}

public void update(Graphics g){ //背景塗りつぶしを抑止する(連続描画のため)
g.setColor(col);
paint(g);
}

public void paint(Graphics g){
g.drawLine(ox, oy, nx, ny);
}

public void actionPerformed(ActionEvent ae){
if (ae.getActionCommand()=="Yellow"){
col = Color.yellow;
}
else if (ae.getActionCommand()=="Blue"){
col = Color.BLUE;
}
QQ.this.repaint();
}
}
--------------------------------------------------
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!