Pergunta

Eu espero que seja termo correto-sábio para dizer que os componentes em uma GUI é como JButton, JPanel, JTextField, todas essas coisas boas.

Eu quero criar um campo de texto que leva em um número inteiro.Em seguida, um botão de envio pode ser pressionado e com base na inteiro que foi introduzido, criar os textfields em uma janela pop-up ou o que seja.

Eu não tenho nenhuma idéia, alguém poderia me começar na direção certa?

Os problemas que eu estou tendo é que eu não tenho nenhuma idéia de como criar um loop for para criar os componentes da GUI.Quero dizer, se eu tenho um loop for e fazer algo como:

print("JTextField num1 = new JTextField()");

em seguida, em um loop for só vai criar 1 campo de texto quando eu quero muitos.Como faço genericamente criar variáveis de JTextFields?

Obrigado por sua ajuda...

Foi útil?

Solução

Uso adequado LayoutManager (e.g.GridLayout) para criar e adicionar o seu textfields.

for (i = 0; i < numberOfTextFields; i++) {
    JTextField textField = new JTextField();
    container.add(textField);
    /* also store textField somewhere else. */
}

Outras dicas

Tente algo como isso:

List<JTextField> nums = new ArrayList<JTextField>();
JTextField tempField;

for (int i = 0; i < 10; i++) {
    tempField = new JTextField();
    jPanel1.add(tempField); // Assuming all JTextFields are on a JPanel
    nums.add(tempField);
}

Não se esqueça de definir um bom layout manager para o recipiente.(jPanel1 neste caso)

Gostaria de criar uma Lista para armazenar os campos de texto e, em seguida, você pode obtê-los de volta pelo índice.Em seguida, você pode ter quantos campos você precisa.

List fields = new ArrayList();

// Create as many elements as you need
for (int i = 0; i < numberOfElements; i++){
  JTextField field = new JTextField();
  // Add the fields to some panel so they are shown in the screen.  
  // I assume that the component is called parent panel
  parentPanel.add(field);

  // Store the component in the list so you can retrieve it later
  fields.add(field);
}

// ...

// When you want to retrieve a particular one:

JTextField field = (JTextField)fields.get( indexToRetrieve );
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top