Boa tarde, gostaria de saber se é possível editar um JLabel depois que o JFrame estiver sendo visualizado.
Ex: o JFrame possui um JLabel com o texto “Ola Mundo”, caso eu de um clique duplo o mesmo entre em modo de edição e eu posso escrever o novo texto desejado.
Muito dificilmente conseguira fazer funcionar assim
o que voce pode fazer é colocar um JTextField e um JButton quando o usuario clicar no botao voce pega o texto do text field e joga no label e chama se naum me engano o repaint do frame para que ele seja atualizado
é só usar o método setText(""); da JLabel, exemplo:
private JLabel label;
public void acaoDoBotao(){
label.setText("Ola Mundo 2");
}
Verdade CristianPalmaSola10, necessito fazer algo diferente do cotidiano, Polverini obrigado pela atenção, mas acredito que não fui claro na explicação.
Segue exemplo:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class TesteEditarLabel extends JFrame{
private JLabel label;
private JTextField textField;
public TesteEditarLabel(){
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(400, 400);
this.setLayout(null);
this.setLocationRelativeTo(null);
this.textField = new JTextField();
this.textField.setBounds(10, 10, 200, 25);
this.textField.setVisible(false);
this.textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
label.setText(textField.getText());
textField.setVisible(false);
}
});
this.add(this.textField);
this.label = new JLabel("Teste");
this.label.setBounds(10, 10, 200, 25);
this.label.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
if (evt.getClickCount() == 2){
textField.setVisible(true);
textField.grabFocus();
}
}
});
this.add(this.label);
}
public static void main(String[] args){
new TesteEditarLabel().setVisible(true);
}
}
Gostaria de fazer isso que estou fazendo no JFrame sem a necessidade de utilizar o JTextField.
Então você quer alterar o conteúdo do JLabel diretamente no JLabel?
bobleujr é isso mesmo que necessito.
Cara acredito que seja algo bem pouco possível sem o auxilio de um JTextField ou algo do gênero. Mas não custa dar uma olhada na documentação.
http://docs.oracle.com/javase/1.4.2/docs/api/javax/swing/JLabel.html
Uma ideia seria voce colocar um evento de duplo clique e quando acontecer esse evento voce abrir JOptionPane.showInputDialog e pegar o valor que o usuario digitou e alterar o label
que acha, sem usar JTextField na tela acho que vai ser o melhor que voce vai conseguir em swing