copiar el texto de JOptionPane
como puedo poner la opcion de copiar el contenido de un JOptionPane
Mando un JOptionPane al usuario pero lo que quiero realizar es darle la opcion de que pueda seleccionar el contenido de ese JOptionPane no se con un click derecho y que diga copiar o que pueda seleccionar el contenido.
e estado buscando pero no encuentro nada
- raul1990's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
context menu
En vez de pasarle texto al JOptionPane, tienes que pasarle un JTextField o JLabel algo similar con el texto que quieres desplegar, y a ese componente le puedes poner un menú contextual con la opción de copiar el texto.
Te dejo un ejemplo super
Te dejo un ejemplo super duper rapido :) es justamente lo que dijo @ezamudio
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package core;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import javax.swing.JTextField;
/**
*
* @author kalt
*/
public class MenuContextual extends JFrame {
private JLabel lb;
private JPopupMenu popup;
private JMenuItem seleccionar;
private JTextField tf;
public MenuContextual() {
this.getContentPane().setLayout(new BorderLayout());
lb = new JLabel("Este es el texto que se copiaría...");
tf = new JTextField();
popup = new JPopupMenu();
seleccionar = new JMenuItem("Seleccionar texto");
seleccionar.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
tf.setText(lb.getText());
}
});
popup.add(seleccionar);
add(lb, BorderLayout.CENTER);
add(tf, BorderLayout.SOUTH);
lb.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
if(e.isPopupTrigger()) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mouseReleased(MouseEvent e) {
if(e.isPopupTrigger()) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
});
pack();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public static void main(String[] ada) {
new MenuContextual().setVisible(true);
}
}
Saludos.