JTextField não recebe informação. [RESOLVIDO]

2 respostas
A

Boa noite a todos.

Criei um JPanel com algumas JTextField. Adicionei esse JPanel em uma JWindow, que fica no canto inferior direito da tela. Para criar a JPanel utilizei os construtores do NetBeans, e a JWindow fiz na mão. Apenas consigo utilizar os botões, que adicionei à JPanel, mas os JTextField não.

Segue abaixo o codigo da criação do JWindow. Agradeço qualquer comentário/sugestão/crítica ao codigo.

import java.awt.Dimension;
import java.awt.GraphicsEnvironment;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JWindow;

public class JWindowTest extends JWindow{
    int JWindowHEIGHT = 200;
    int JWindowWIDTH = 200;

    JButton closeButton = new JButton();
    JPanelCanto panel = null;

    private Dimension getScreenSize(){
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
        Rectangle rect = ge.getMaximumWindowBounds();
        return new Dimension(rect.width, rect.height);
    }

    public JWindowTest(){
        panel = new JPanelCanto(this);
        if (((getScreenSize().height)/10)<200)
            this.JWindowHEIGHT = (getScreenSize().height/3);
        if(((getScreenSize().width)/10)<200)
            this.JWindowWIDTH = (getScreenSize().width/3);
        initComponents();
    }

   private void initComponents(){
        this.setSize(JWindowWIDTH,JWindowHEIGHT);
        this.setLocation(getScreenSize().width-JWindowWIDTH,
        getScreenSize().height-JWindowHEIGHT);
        this.add(panel);
   }
}

Abraço a todos.

2 Respostas

Eric_Yuzo

Você não consegue digitar no text field?

Imagino que o problema seja porque o JWindow por padrão está implementado para não segurar o foco para ele. E sem o foco, o text field não aceita a digitação.

Se o problema for este mesmo, pode fazer com que o JWindow possa receber o foco pelo o método setFocusableWindowState:

Acho que o mais comum seria usar um JDialog, mas esta é apenas uma opinião pessoal.

A

Fala Eric,

Valeu pela dica do JDialog. Foi ele que resolveu a parada.

Como JWindow, msm com o setFocusableWindowState(true), eu no conseguia digitar. Ainda nao entendi o porque, mas foi so utilizar como JDialog que funcionou perfeito.

Apenas adicionei um setUndecorated(true) e funcionou perfeito, como eu queria.

Valeu pelas dicas e pela ajuda Eric.

Grande abraço

Criado 10 de fevereiro de 2011
Ultima resposta 11 de fev. de 2011
Respostas 2
Participantes 2