0
私は初心者からJava Swingです。 マイコードはこれです:私はこれを実行している間public void paintComponent(Graphics g)not working
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class LineDrawing extends JComponent
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
JPanel panel = new JPanel();
int startX = 0;
int startY = 0;
int endX = 0;
int endY = 0;
addMouseListener(new MouseListener(){
@Override
public void mousePressed(MouseEvent e)
{
startX = e.getXOnScreen();
startY = e.getYOnScreen();
}
@Override
public void mouseReleased(MouseEvent e)
{
endX = e.getXOnScreen();
endY = e.getYOnScreen();
Draw d = new Draw();
d.lineDraw(startX,startY,endX,endY);
panel.add(d);
frame.add(panel);
}
@Override
public void mouseClicked(MouseEvent e){}
@Override
public void mouseEntered(MouseEvent e){}
@Override
public void mouseExited(MouseEvent e){}
});
addMouseMotionListener(new MouseMotionListener(){
@Override
public void mouseDragged(MouseEvent e)
{
endX = e.getXOnScreen();
endY = e.getYOnScreen();
}
@Override
public void mouseMoved(MouseEvent e){}
});
frame.setSize(500,400);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public class Draw extends JPanel
{
public void lineDraw(int x1,int y1,int x2,int y2)
{
@Override
protected void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.black);
g.drawLine(x1,y1,x2,y2);
}
}
}
}
が、それは私にこのエラーを与える:私はこのコードを強化し、上記のエラーを解決するにはどうすればよい
。
他のコードも見ましたが、paintComponentに何か問題があります。
私はpaintComponent前に@Overrideを入れたままならば...それは、このエラーを与える:バックスラッシュのよう
1) ';' statement missing. 2) illegal start of expression.
メソッドを別のメソッドの中に宣言することはできません。 – BackSlash