0
GUI를 다시 칠하는 데 문제가 있습니다. 내 중앙 요소에 브러시와 같은 그림을 그리기를 원하지만, 마우스를 끌 때 GUI의 모든 요소가 내 중앙 요소에 인쇄됩니다. 문제를 해결하는 방법에 대해 알고 있습니까?Java의 repaint() GUI 문제
나는 이미지를 게시 할 수 없습니다, 그래서 링크는 사진에 있습니다 : http://imgur.com/a/P3aYC
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class PunsClient extends JFrame {
//GUI
private JButton polacz, rozlacz;
private JPanel topPanel;
private Painter painter;
//Klient
private String nazwaSerwera = "localhost";
private Klient watekKlienta;
private PunsClient instancjaKlienta;
private Puns serwer;
private ClientImpl klient;
public PunsClient() {
super("Klient");
instancjaKlienta = this;
setSize(700, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
topPanel = new JPanel(new FlowLayout());
painter = new Painter();
polacz = new JButton("Połącz");
rozlacz = new JButton("Rozłącz");
rozlacz.setEnabled(false);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
rozlacz.doClick();
setVisible(false);
System.exit(0);
}
});
topPanel.add(new JLabel("Serwer RMI: "));
topPanel.add(host);
topPanel.add(polacz);
topPanel.add(rozlacz);
add(topPanel, BorderLayout.NORTH);
add(painter, BorderLayout.CENTER);
add(wiadomosc, BorderLayout.SOUTH);
setVisible(true);
}
public static void main(String[] args) {
new PunsClient();
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Painter extends JPanel {
int xvalue = -10, yvalue = -10;
public Painter() {
setPreferredSize(new Dimension(400, 400));
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent event) {
xvalue = event.getX();
yvalue = event.getY();
repaint();
}
});
}
public void paint (Graphics g) {
g.fillOval(xvalue, yvalue, 10, 10);
}
}
위대한 답변, 감사합니다! – user3608388