Bueno la verdad me la pase realizando este codigo q consta de dos listas y 1 boton copiar al seleccionar un objeto de la lista y precionar el boton copiar, lo pasa a la lista 2 traducido-
el problema q tengo en el codigo esta en el ActionListener del boton y no he podido solucionar el error, si alguien me puede ayudar se lo agradezco..
//fichero traductor.java
import java.awt.*;
import java.awt.*;
import javax.swing.*;
public class traductor extends JFrame
{
private JList ingles,español;
private JButton b1;
//arreglo lista ingles
private String verbosingles[]={"go","have","put","give","do","keep","make","speak","eat","lend"};
//arreglo verbotraducido
private String verboTraducido[]={"ir","tener","poner","dar","hacer","mantener","hacer","hablar","comer","prestar"};
JPanel p= new JPanel();
public traductor()
{
super ("Traductor");
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
//establecer lista ingles
ingles = new JList( verbosingles );
ingles.setVisibleRowCount( 5 );
ingles.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION );
contenedor.add( new JScrollPane( ingles ) );
b1 = new JButton("Copiar >>>");
b1.addActionListener(new ActionListener() { // EN ESTE ACTIONLISTENER ES DONDE SE PRESENTA EL PROBLEMA.
// manejar evento de botón
public void actionPerformed( ActionEvent e)
{
// colocar valores seleccionados en listaCopia
español.setListData( ingles.getSelectedValues() );
español.setListData(verboTraducido[ingles.getSelectedIndex()] );
}
} // fin de clase interna anónima
); // fin de la llamada a addActionListener
contenedor.add( b1 );
// establecer objeto JList listaCopia
español = new JList( );
español.setVisibleRowCount( 5 );
español.setFixedCellWidth( 100 );
español.setFixedCellHeight( 20 );
español.setSelectionMode(
ListSelectionModel.SINGLE_INTERVAL_SELECTION );
contenedor.add( new JScrollPane( español ) );
setSize( 150, 150 );
setVisible( true );
} // fin del constructor PruebaSeleccionMultiple
//main
public static void main(String args[])
{
traductor aplicacion=new traductor();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}//CIERRA LA CLASE
¿Y cual es ese problema?
Se bueno.
A tu Jlist Español pasale un DefaultListModel
//establecer lista ingles
ingles = new JList( verbosingles );
final DefaultListModel defaultListModel = new DefaultListModel();
español = new JList( );
español.setModel(defaultListModel);
Luego en el ActionListerner coloca lo sig
defaultListModel.addElement(verboTraducido[ingles.getSelectedIndex() ]);
Y listo problema resuelto ha y ajusta un poco los valores del JFrame
Un Saludo.
muchas gracias por la ayuda, pero me sigue saliendo error en el ActionListener del boton b1... sera q me puedes poner el codigo completo???
De seguro el listerner no te reconoce el metodo por la falta de @Override
//fichero traductor.java
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
public class traductor extends JFrame
{
private static final long serialVersionUID = 1L;
private JList ingles,español;
private JButton b1;
//arreglo lista ingles
private String verbosingles[]={"go","have","put","give","do","keep","make","speak","eat","lend"};
//arreglo verbotraducido
private String verboTraducido[]={"ir","tener","poner","dar","hacer","mantener","hacer","hablar","comer","prestar"};
JPanel p= new JPanel();
public traductor()
{
super ("Traductor");
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
//establecer lista ingles
ingles = new JList( verbosingles );
final DefaultListModel defaultListModel = new DefaultListModel();
español = new JList( );
español.setModel(defaultListModel);
ingles.setVisibleRowCount( 5 );
ingles.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION );
contenedor.add( new JScrollPane( ingles ) );
b1 = new JButton("Copiar >>>");
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed( ActionEvent e)
{
// colocar valores seleccionados en listaCopia
defaultListModel.addElement(verboTraducido[ingles.getSelectedIndex() ]);
}
} // fin de clase interna anónima
); // fin de la llamada a addActionListener
contenedor.add( b1 );
// establecer objeto JList listaCopia
español.setVisibleRowCount( 5 );
español.setFixedCellWidth( 100 );
español.setFixedCellHeight( 20 );
español.setSelectionMode(
ListSelectionModel.SINGLE_INTERVAL_SELECTION );
contenedor.add( new JScrollPane( español ) );
setSize( 450, 150 );
setVisible( true );
}
//main
public static void main(String args[])
{
traductor aplicacion=new traductor();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}//CIERRA LA CLASE
Funciona, muchas gracias por ayudarme...
import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton.*;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class traductorv2 extends JFrame {
private JTextField txtField,txtField2,texto;
private JButton btnClear,btnClear2;
private JLabel label1,label2,label3,label4;
public traductorv2() {
// Creo la parte gráfica de los contenedores.
Container c = getContentPane();
setTitle("T.D.T");
c.setLayout(new FlowLayout());
setSize(300, 400);
setLocation(330, 300);
label1= new JLabel ("The word in English");
label3= new JLabel( "<-----");
label4= new JLabel( "----->");
txtField = new JTextField(10);
label2= new JLabel("AL ESPAÑOL ");
txtField2 = new JTextField(10);
btnClear = new JButton("BORRAR");
btnClear2 = new JButton("ACEPTAR");
//Al botón le agrego el listener.
btnClear.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent ev)
{
clearTxtField();
}
});
//Los añado al contenedor
c.add(label1);
c.add(txtField); c.add(label3);
c.add(label4);
c.add(label4);
c.add(label2);
c.add(txtField2);
c.add(btnClear);
c.add(btnClear2);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
// Procedimiento que limpia el formulario..
public void clearTxtField() {
txtField.setText("");
}
public void DameIdioma(String id){
}
}