런타임에 입력을 받아서 프레임에 텍스트 필드를 만들려고합니다. 가능한가? 아니면 다른 프레임을 만들어야합니다. 이 코드를 시도했지만 작동하지 않습니다. 제발 도와주세요. 그리고이 코드의 잘못된 점을 말해주세요.런타임에 Jframe에 텍스트 필드 추가하기
import java.awt.BorderLayout;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Check extends JFrame implements ActionListener
{
JTextField txtqty;
JTextField[] tfArr;
JPanel p1,p2;
JButton bsmbt;
public Check()
{
GUIDesign();
}
public void GUIDesign()
{
p1 = new JPanel();
txtqty = new JTextField(10);
JButton bsmbt= new JButton("OK");
p1.add(txtqty);
p1.add(bsmbt);
p2=new JPanel();
p2.setLayout(null);
add(p1,BorderLayout.NORTH);
setSize(500, 500);
setVisible(true);
setLocation(100, 100);
bsmbt.addActionListener(this);
}
public static void main(String[] args)
{
new Check();
}
public void TFArray(JTextField[] temp)
{
int x,y,width,height;
x=10;y=30;width=50;height=20;
int no_of_textboxes = Integer.parseInt(txtqty.getText());
temp=new JTextField[no_of_textboxes];
for(int i=0;i<no_of_textboxes;i++)
{
temp[i]= new JTextField(10);
temp[i].setBounds(x, y, width, height);
x+=(width+10);
p2.add(temp[i]);
}
add(p2);
}
@Override
public void actionPerformed(ActionEvent ae) {
JOptionPane.showMessageDialog(this, txtqty.getText());
TFArray(tfArr);
}
}
-> 메서드 TFArray()가 작동하지 않습니다.
어떤 부분이 작동하지 않습니까? 당신이 얻는 결과는 무엇입니까? 그것이 당신이 원하는 것과 어떻게 다른가요? 더 많은 가시성과 친구가 필요합니다. – KyleKW
이 코드는 위의 GUIDesign() 메서드에서 panel1에 만든 버튼이 하나 뿐인 텍스트 필드를 보여줍니다. 나는 입력으로 주어진 많은 텍스트 필드를 만들고 싶었다. 하지만이 코드는 작동하지 않습니다. – kikkaz69
1)'public void TFArray' 메소드 이름은 lowerCamelCase이어야합니다. 2)'JFrame' 확장은'JPanel'을 확장하고'JFrame' 인스턴스를 생성해야한다면'JFrame'을 대신 확장하지 말아야합니다. JButton bsmbt = new JButton ("OK");'글로벌 변수'JButton bsmbt; '가 그 라인 때문에 사용되지 않는다는 것을 알고 계십니까? 4) 정확하게 작동하지 않는 부분은 무엇입니까? – Frakcool