이 코드가 있습니다. 이 코드에서 이미지는 왼쪽에서 오른쪽으로 moveImage 메서드로 이동하고 코드에서 moveimg 메서드로 오른쪽에서 왼쪽으로 이동합니다. 지금 내가 원하는 건 버튼 이벤트를하는 것입니다. 코드에 버튼이 있습니다. 버튼을 클릭하면 작업을 수행해야합니다. 하지만 여기서는 코드가 없습니다 :이미지가 움직이는 동안 버튼 이벤트가 작동하지 않습니다.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class MyImage extends JFrame implements ActionListener
{
static int xPixel = 20;
Image myImage, offScreenImage;
Graphics offScreenGraphics;
JPanel p = new JPanel();
Button btn = new Button("bun");
JFrame f = new JFrame();
public MyImage()
{
myImage = Toolkit.getDefaultToolkit().getImage("mywineshoplogo.jpg");
setExtendedState(JFrame.MAXIMIZED_BOTH);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
add(p);
p.add(btn);
moveImage();
btn.addActionListener(this);
}
public void update(Graphics g)
{
paint(g);
}
public void paint(Graphics g)
{
int width = getWidth();
int height = getHeight();
if (offScreenImage == null)
{
offScreenImage = createImage(width, height);
offScreenGraphics = offScreenImage.getGraphics();
}
// clear the off screen image
offScreenGraphics.clearRect(0, 0, width + 1, height + 1);
// draw your image off screen
offScreenGraphics.drawImage(myImage, xPixel, 10, this);
// draw your image off screen
// show the off screen image
g.drawImage(offScreenImage, 0, 0, this);
// show the off screen image
}
void moveImage() //left to right move
{
for (int i = 0; i < 530; i++)
{
xPixel += 1;
repaint();
// then sleep for a bit for your animation
try
{
Thread.sleep(40);
} /* this will pause for 50 milliseconds */
catch (InterruptedException e)
{
System.err.println("sleep exception");
}
}
}
/* void moveimg() // right to left move
{
for (int i = 529; i > 0; i--)
{
if (i == 1)
{
moveImage();
}
xPixel -= 1;
repaint();
// then sleep for a bit for your animation
try
{
Thread.sleep(40);
} // this will pause for 50 milliseconds
catch (InterruptedException e)
{
System.err.println("sleep exception");
}
}
} */
public void actionPerformed(ActionEvent ae)
{
try
{
if (ae.getSource() == btn)
{
p.setBackground(Color.RED);
}
}
catch (Exception e)
{
System.out.println("error");
}
}
public static void main(String args[])
{
MyImage me = new MyImage();
}
}
코드는 간단하게 링크되지 않은 상태에서 질문에 포함되어야합니다. 그리고 그것은 적절하게 들여 쓰기되어야합니다. 그리고 언어를 나타내는 태그를 추가해야합니다. 결정된. – Dukeling
죄송합니다. 어떻게 해야할지 모르겠다. 나는 여기 새로운 ... –
질문에 코드를 삽입하는 것은 간단한 복사 붙여 넣기입니다. 형식을 지정하려면 코드를 선택하고 편집 상자의 맨 위에있는 '{}'버튼을 클릭하거나 Ctrl-K를 누르거나 모든 줄에 4 개의 공백을 수동으로 추가하십시오. 들여 쓰기를하려면 외부 프로그램을 사용하거나 수동으로 수행해야합니다. [편집] 페이지에서 하단에 태그를 추가 할 수도 있습니다. – Dukeling