背景: 我正在製作一個「字典」或類似於「畫東西」的多人遊戲。不斷重繪問題
問題: 當我畫手繪它不斷調用repaint()。當我按下按鈕並單擊jpanel時,該按鈕在jpanel上重新繪製或重繪。
代碼:
public class DrawP extends JPanel implements MouseListener, MouseMotionListener{
private int x1;
private int y1;
private int cx,cy;
public DrawP(){
super();
JFrame fr = new JFrame("Test");
JButton btn = new JButton("Test");
fr.setSize(500, 500);
Container c = fr.getContentPane();
c.add(btn, BorderLayout.SOUTH);
c.add(this);
this.addMouseListener(this);
this.addMouseMotionListener(this);
fr.setVisible(true);
c.validate();
c.repaint();
}
public void paintComponent(Graphics g){
super.paintComponents(g);
g.drawLine(cx, cy, x1, y1);
}
@Override
public void mouseDragged(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
cx = x1;
cy = y1;
repaint();
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
cx = e.getX();
cy = e.getY();
x1 = cx;
y1 = cy;
repaint();
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
public static void main (String [] args){
DrawP d = new DrawP();
}
}
此圖爲後,我按一下按鈕,繪製發生了什麼: http://imgur.com/o9QCTjF
對不起,但我不明白你想要發生,不想發生。你能解釋得更清楚嗎? –
它不是Java 8,是嗎? –
我想繪製就像你可以畫在油漆上。並停止按鈕重新出現在jpanel中。 – user3123062