Dejo el código para que lo prueben:
/** * * @author http://jonathan-palomino.blogspot.com/ * */ import javax.swing.SwingUtilities; import java.awt.BorderLayout; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JTextField; import java.awt.CardLayout; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JLabel; import java.awt.Font; import javax.swing.SwingConstants; public class principal extends JFrame { private static final long serialVersionUID = 1L; private JPanel jContentPane = null; private JPanel panel_edicion = null; private JLabel etiqueta_editable = null; /*************************************/ //si el usuario hizo enter private static final int confirmar = KeyEvent.VK_ENTER; //si es usuario pulso escape private static final int cancelo = KeyEvent.VK_ESCAPE; private CardLayout card;//utilizo el carlayotu para manejar varios objetos dentro del mismo panel private static final String txt_caja = "text field"; // @jve:decl-index=0: private JTextField caja_edicion; private static final String LABEL = "label"; private String valor=new String(""); /** * This method initializes panel_edicion * * @return javax.swing.JPanel */ private JPanel getPanel_edicion() { if (panel_edicion == null) { card = new CardLayout(); etiqueta_editable = new JLabel(); etiqueta_editable.setText("Programación fácil con JAVA"); etiqueta_editable.setHorizontalAlignment(SwingConstants.CENTER); etiqueta_editable.setFont(new Font("Dialog", Font.BOLD, 48)); etiqueta_editable.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { //si el usurario hizo doble clic encima de la etiqueta if (e.getClickCount() == 2) { editando(); } } }); caja_edicion = new JTextField(); caja_edicion.addKeyListener(new KeyAdapter() { public void keyReleased(KeyEvent e) { if (e.getKeyCode() == confirmar) { confirmar(); } else if (e.getKeyCode() == cancelo) { cancelar(); } } }); panel_edicion = new JPanel(card); panel_edicion.add(caja_edicion, txt_caja); panel_edicion.add(etiqueta_editable, LABEL); card.show(panel_edicion, LABEL); } return panel_edicion; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub SwingUtilities.invokeLater(new Runnable() { public void run() { principal thisClass = new principal(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } /** * This is the default constructor */ public principal() { super(); initialize(); } /** * This method initializes this * * @return void */ private void initialize() { this.setSize(864, 251); this.setContentPane(getJContentPane()); this.setTitle("JLabel editable en tiempo de ejecucion por jonathan-palomino.blogspot.com"); this.setLocationRelativeTo(null); } /** * This method initializes jContentPane * * @return javax.swing.JPanel */ private JPanel getJContentPane() { if (jContentPane == null) { jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(getPanel_edicion(), BorderLayout.CENTER); } return jContentPane; } /*********************************************/ private void editando() { card.show(getPanel_edicion(), txt_caja); caja_edicion.setText(valor); caja_edicion.requestFocus(); caja_edicion.selectAll(); } private void cancelar() { caja_edicion.setText(valor); card.show(getPanel_edicion(), LABEL); } public void confirmar() { valor = caja_edicion.getText(); etiqueta_editable.setText(valor); card.show(getPanel_edicion(), LABEL); } }
gracias men me sirvió para un proyecto que estoy realizando de un crucigrama
ResponderEliminarOk gracias no olvides dar un g+1
ResponderEliminar