1
나는 내 Frame
에 추가하고 지속적으로 업데이트하는 사용자 정의 JPanel
클래스가 있습니다. 이 클래스는 무시 된 paintComponent
과 JButton
을가집니다. paintComponent
에 그려진 그래픽 위에 JButton
을 어떻게 그리려고합니까? 나는이 paintCompoment
을 루프를 통해 끊임없이 업데이트한다. repaint()
이 그 것이다. 그러나 나는 JButton
을 변경하지 않는다. 내 사용자 지정 JPanel
클래스는 내 Main
클래스의 하위 클래스입니다.Java 그래픽의 JButton infront를 그리는 방법?
내 패널 AndrewThompsons에게 지혜로운 말에 따라 클래스
public class interTower extends JPanel implements ActionListener{
public interTower(){
setVisible(true);
setPreferredSize(new Dimension(SCREENWIDTH, SCREENHEIGHT));
JButton interTower_back = new JButton("Back");
interTower_back.setActionCommand("interTower_back");
interTower_back.addActionListener(this);
add(interTower_back);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
drawMaster(g2d);
g2d.dispose();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
}
1) super.paintComponent (g);를 메소드의 첫 번째 라인으로 이동하십시오. 2)'g.dispose();'생성하지 않은'Graphics' 객체를 처리하지 마십시오 . 3)'g2d'는 같은 그래픽 객체입니다. 그것도 처분하지 마십시오. 3) 더 빨리 도움을 받으려면 [MCVE] 또는 [짧은, 자기 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오. 4) 일반적인 Java 명명법 (예 :'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'가'UPPER_CASE_CONSTANT'가 아닌 경우)을 배우고 일관되게 사용하십시오. –
* "이미 그랬어."* 사용중인 코드와 같이 '무언가'를 게시하는 대신 실제로 실패한 *** 코드 인 MCVE를 보여줍니다. –
@AndrewThompson이 코드 조각은 실패했습니다 – Colourfit