我修改了代碼 和相同的輸出沒有圈當我點擊鼠標繪製圓塔的位置我點擊不起作用
public class gui extends JFrame{
Scanner scan = new Scanner(System.in);
private final JPanel mousepanal;
private final JLabel stutespar ;
int x=0;
int y=0;
public gui() {
super("title");
mousepanal = new JPanel();
mousepanal.setBackground(Color.WHITE);
add(mousepanal,BorderLayout.CENTER);
add(edffnmlsdfkj,BorderLayout.WEST);
stutespar = new JLabel();
add(stutespar,BorderLayout.SOUTH);
Handlerclass handler = new Handlerclass();
Paintcir p = new Paintcir();
mousepanal.addMouseListener(handler);
mousepanal.addMouseMotionListener(handler);
}
///////////// //////////////
private class Handlerclass extends JPanel implements MouseListener,MouseMotionListener{
@Override
public void mouseClicked(MouseEvent e) {
stutespar.setText(String.format("clicked at %d %d",e.getX(),e.getY()));
x=e.getX();
y=e.getY();
如何調用重繪()?
repaint();
}
/////////////////////// //////////////////
@Override
public void mousePressed(MouseEvent e) {
stutespar.setText("you bress mouse");
}
@Override
public void mouseReleased(MouseEvent e) {
stutespar.setText("mouse realse");
}
@Override
public void mouseEntered(MouseEvent e) {
stutespar.setText("you entered the mouse");
// mousepanal.setBackground(Color.RED);
}
@Override
public void mouseExited(MouseEvent e) {
stutespar.setText("exsitd");
// mousepanal.setBackground(Color.WHITE);
}
@Override
public void mouseDragged(MouseEvent e) {
stutespar.setText("dragged");
}
@Override
public void mouseMoved(MouseEvent e) {
stutespar.setText("moved");
}
///////////////////////// /////////////////
@Override
public void paintComponent(Graphics g) {
super.paintComponents(g);
this.setBackground(Color.yellow);
g.setColor(Color.green);
g.fillOval(x, y, 40, 40);
// g.fillOval(x+50, y+100, 40, 40);
}
}
}
這是主類
public class Main extends JFrame {
public static void main(String[] args) {
gui g = new gui();
g.setDefaultCloseOperation(EXIT_ON_CLOSE);
g.setSize(500,500);
g.setVisible(true);
}
}
也許你可以給任何錯誤?你期待什麼作爲輸出? – Bono
輸出是我創建框架 當我點擊.. 沒有任何反應 –
x = e.getX(); y = e.getY(); x和y沒有被使用只是說 – Thellimist