이미지를 다시 그리려 하는데...안돼네요..
첫삥
....
public class ex extends JFrame {
public ex(){
super();
init();
}
public void init(){
this.setContentPane();
this.setBounds(0,0,300,200);
....
this.add(ContentPane())
}
public JPanel ContentPane(){
if( contentpane == null){
contentpane = new JPanel();
contentpane.add(drawpane());
contentpane.add(button());
contentpane.setLayout(null);
}
} public JPanel drawpane(){
if( draw == null) {
draw = new JPanel(){
public void paintComponent(Graphics g){
Image img = Toolkit.DefaultToolkit().getImage(그림파일1);
g.drawImage(img,0,0,50,50,this);
}
};
draw.setBounds(10,10,50,50);
draw.setVisible(true);
draw.setLayout(null);
}
}
public JButton button(){
if(btn == null){
btn = new btn(repaint);
btn.setVisible(true);
btn.setBounds(100,10, 60,60);
btn.addActionListener(new ActionListener(){
public void actionPerformed (ActionEvent e){
Graphics g = draw.getGraphics();
Image img = Toolkit.DefaultToolkit().getImage(그림파일2);
g.drawImage(img,0,0,50,50,this);
draw.repaint(); });
}
}
}// end of class ex
이미지를 버튼을누르면 그림파일2로 보여 지도록 하고 싶은데...이미지가 다시 그려지지 않네요...
이유가 뭔지 몰르겟어요...
저에게 가르침을 좀 주셧으면 하네요..
-
무리한 2024-09-01
다행입니다. ^^
-
동은 2024-09-01
감사합니다...^^
저는 한 클래스내에서 해결 하려다보니....조언대로 하니 잘돼네요...^^ -
해리 2024-09-01
drawpane()메쏘드에서
new JPanel()을 그대로 사용하셨는데요
JPanel을 상속해서 님만의 클래스로 생성하시구여
그 클래스안에 setImage( Image img )형식의 메소드 구성한다음
button()메소드의 actionPerformed이 이뤄지면
draw의 setImage()의 인자로 Toolkit.DefaultToolkit().getImage(\그림파일2\)의 리턴값인
Image오브젝트를 넣는 형식으로 하시면 될꺼에요