[java swing질문] 버튼이벤트 발생시 이미지 생성질문이요!!
얀
Swing 을 이요한 프로그램을 짜고있는데요..
프레임이 있고 그안에는 internalframe 이 있습니다.
프레임에는 메뉴가 있고요..그 메뉴를 클릭하게 되면 다른클래스에 있는 Jdialog가 실행되어 새창이 띄워집니다..
그 안에서 버튼을 누르게 되면 원래 프레임안에 있던 internalframe에 특정위치에 그림이 뜨게 하고 싶은데요..
구현이 맘대로 잘되지 않아서 이렇게 도움을 요청합니다..
아래는 소스내용중의 일부이고요..해당 질문부분을 표시 해놓겠습니다..답변해주시면 감사해요..
더 좋은 방법으로 구현이 가능하면 그 부분에 대해서도 좀 알려주십사합니다.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.* ;
import javax.swing.event.*;
public class Fish extends JFrame implements ActionListener{
JDesktopPane xDesktop = new JDesktopPane();
JMenuBar mbar = new JMenuBar();
Container con = null;
JScrollPane scrollPane;
public Fish(String title){
super(title);
con = this.getContentPane();
con.setLayout(new BorderLayout());
con.add(xDesktop);
mbar.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
JMenu list = new JMenu(품목선택);
JMenuItem list_1 = new JMenuItem(어항);
list.add(list_1);
list_1.addActionListener(this);
mbar.add(list);
mbar.add(help);
setJMenuBar(mbar); //이것이 기존 프레임안에있는 jinternalframe 입니다.
JInternalFrame iframe = new JInternalFrame(어항이미지, true, true, true, true);
iframe.setBounds(50, 20, 630, 300);
JLabel iframe_l1 = new JLabel(new ImageIcon(어항1_1.gif));
iframe.getContentPane().add(iframe_l1);
iframe.setVisible(true);
xDesktop.add(iframe);
}//액션 부분입니다.public void actionPerformed(ActionEvent e) {
String st=e.getActionCommand();
if(st.equals(어항)){
Fishbowl fis = new Fishbowl(this); //이벤트가 발생하면 해당 클래스를 실행합니다.
}
}
// 메인부분입니다.public static void main(String args[]){
Fish m = new Fish(나만의 어항꾸미기);
m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
m.setLocation(150,150);
m.setSize(750, 400);
m.setVisible(true);
}
}
// 액션에 관한 내용이 들어있는 클래스 입니다.class Fishbowl{
JPanel bowl0 = new JPanel();
JPanel bowl1 = new JPanel();
JPanel bowl2 = new JPanel();
JPanel bowl3 = new JPanel();
public Fishbowl(JFrame owner){
final JDialog bowl = new JDialog(owner, 어항 선택); // JDialog를 실행합니다.
bowl.getContentPane().setLayout(new BorderLayout());
bowl.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){
bowl.setVisible(false);
bowl.dispose();}
});
bowl0.setLayout(new GridLayout(0,3));
bowl0.setSize(1000,1000);
bowl0.setBackground(Color.yellow);
Border paneEdge = BorderFactory.createEmptyBorder(5,5,5,5);
bowl0.setBorder(paneEdge);
bowl1.setLayout(new GridLayout(4,0));
bowl1.setSize(100,100);
bowl1.setBorder(BorderFactory.createTitledBorder(
BorderFactory.createLineBorder(Color.orange),
첫번째어항));
bowl1.setPreferredSize(new Dimension(100, 20));// 이 뒤에 비슷한 형태로 두번째어항, 세번째 어항이있는데 생략합니다.bowl0.add(bowl1);
JLabel bow1_l1 = new JLabel(new ImageIcon(어항1.gif));
final JLabel bow1_l2 = new JLabel( 가격 0 원);
final JTextField bow1_tf = new JTextField(2);
// 이부분에서 구입이라는 버튼을 눌렀을 경우 위에 있는 jinternalframe안에 특정위치에
어항1.gif 파일이 생기는것을 구현하고 싶습니다. 수정좀 도와주시면 감사할께요.
JButton bow1_b = new JButton(구입);
bow1_b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
int bsp;int b1 = (Integer.parseInt(bow1_tf.getText())*500);
bow1_l2.setText( 가격+b1+원);}
}); bowl1.add(bow1_l1);
bowl1.add(bow1_tf);
bowl1.add(bow1_b);
bowl1.add(bow1_l2);bowl.getContentPane().add(bowl0,BorderLayout.NORTH);
bowl.setLocation(200,100);
bowl.pack();
bowl.setVisible(true);
}
}