PaintPanel
(paint()
메서드 사용) 및 ButtonPanel
(버튼 사용)의 두 JPanel
인 JFrame
이 있습니다. PaintPanel
의 repaint()
을 호출하면 (버튼을 클릭하면) ButtonPanel
버튼이 PaintPanel
에 그려져 있습니다! 그것은 클릭 할 수 없거나, 단지 거기에 있습니다.다시 칠 때 JButton이 복사됩니까?
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("frame");
frame.setSize(400,400);
frame.setLayout(new GridLayout(2,1));
PaintPanel paint = new PaintPanel();
ButtonPanel buttons = new ButtonPanel(paint);
frame.add(paint);
frame.add(buttons);
frame.setVisible(true);
}
}
public class PaintPanel extends JPanel{
public void paint(Graphics g){
g.drawRect(10, 10, 10, 10);
}
}
public class ButtonPanel extends JPanel implements ActionListener{
private PaintPanel paintPanel;
public ButtonPanel(PaintPanel paintPanel){
this.paintPanel=paintPanel;
JButton button = new JButton("button");
button.addActionListener(this);
add(button);
}
@Override
public void actionPerformed(ActionEvent arg0) {
paintPanel.repaint();
}
}
이것은 내가 가지고있는 문제를 다시 sould (홀수 코드 표시에 대한 미안, 바로 그것을 얻을 수없는 것) :
는이 코드의 문제를 다시 시도했다.은 정말 모든
이러한 렌더링 아티팩트가 종종 [불투명도] 명예 실패에서 발생은 (http://java.sun.com/products/jfc/tsc/articles/painting/index.html#props) 속성 게다가, "스윙 프로그램은'paint()'를 오버라이드하는 대신에'paintComponent()'를 덮어 써야합니다."- [* AWT와 스윙의 페인팅 : 페인트 메소드 *] (http://java.sun.com/products/jfc /tsc/articles/painting/index.html#callbacks). – trashgod