English version at:
link
Atualmente, estava tentando desabilitar o JTextField de um JFileChooser que estou trabalhando.
A princípio, pensei: "Tranquilo."
Mas, para a minha surpresa vi que não havia nada implementado, mas, como o programador que sou tentei implementar algo:
Tentei o seguinte:
Components[] comp = meuJFileChooser.getComponents();
for(Component c: comp) {
if(c instanceof JTextField) {
c.setVisible(false);
}
}
Bem...isso não funcionou, mas, a idéia seguinte funcionou
Clique aqui para ver a solução.
A dificuldade do problema é obter a referência do JTextField em questão.
Passed in SCBCD 5 exam
Há 14 anos
2 comentários:
Em busca um solução que "Desabilitar o campo de texto (JTextField) do JFileChooser", achei seu post. E gostei da solução dada no link que passou. Mas encontrei também esta solução:
import java.awt.Frame;
import java.lang.reflect.Field;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.plaf.metal.MetalFileChooserUI;
public class FileChooser {
public static void main(String[] args) throws Exception{
Frame f = new JFrame();
JFileChooser jFileChooser = new JFileChooser();
MetalFileChooserUI ui = (MetalFileChooserUI)jFileChooser.getUI();
Field field = MetalFileChooserUI.class.getDeclaredField("fileNameTextField");
field.setAccessible(true);
JTextField tf = (JTextField) field.get(ui);
tf.setEditable(false);
tf.setEnabled(false);
jFileChooser.showDialog(f, "Select");
f.dispose();
}
}
Obrigado pelo seu comentário. Essa solução é bem limpa!
Abs
Postar um comentário