hallo,
ich bin auf der suche nach ein möglichkeit, wie ich von einem JListA Elemente in ein anderer JListB adden kann. Diese gewählter Element soll nur dann in JListB geadded werden, sobald es in JListB nicht existirt. Von JListA darf zu dem nur ein Element in JListB geaddet werden.
Irgend wie klappt aber nicht, so wie es mache.
bitte um Hilfe stellung, wo mache ich denk fehler, dass es nicht klappt.
danke vorraus
mfg
ich bin auf der suche nach ein möglichkeit, wie ich von einem JListA Elemente in ein anderer JListB adden kann. Diese gewählter Element soll nur dann in JListB geadded werden, sobald es in JListB nicht existirt. Von JListA darf zu dem nur ein Element in JListB geaddet werden.
Irgend wie klappt aber nicht, so wie es mache.
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class test extends Frame {
//
// componente
private JPanel topPanel = new JPanel(null, true);
//
private JList JListA = new JList();
private DefaultListModel JListAModel = new DefaultListModel();
private JScrollPane JListAScrollPane = new JScrollPane(JListA);
//
private JList JListB = new JList();
private DefaultListModel JListBModel = new DefaultListModel();
private JScrollPane JListBScrollPane = new JScrollPane(JListB);
//
private String[] elemente = { "Element1", "Element2", "Element3", "Element4", "Element5" };
//
//
public test(String title) {
//
super (title);
//
// window close event
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
dispose();
}
});
//
//
int frameWidth = 1000;
int frameHeight = 550;
//
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Panel cp = new Panel(null);
cp.setBackground(new Color(0x404040));
add(cp);
//
//
JListA.setModel(JListAModel);
JListA.setFocusable(false);
JListAScrollPane.setBounds(263, 100, 200, 200);
JListA.setBackground(Color.WHITE);
cp.add(JListAScrollPane);
for (int i = 0; i<elemente.length; i++) {
JListAModel.addElement(elemente[i]);
}
ListSelectionListener listSelectionListener = new ListSelectionListener() {
public void valueChanged(ListSelectionEvent listSelectionEvent) {
//
//
System.out.println("First index: " + listSelectionEvent.getFirstIndex() + " Last index: " + listSelectionEvent.getLastIndex());
//
int li = listSelectionEvent.getFirstIndex();
int fi = listSelectionEvent.getLastIndex();
//
Object fo = JListAModel.getElementAt(listSelectionEvent.getFirstIndex());
Object lo = JListAModel.getElementAt(listSelectionEvent.getLastIndex());
//
if ( !(JListBModel.contains(lo)) ) {
JListBModel.addElement(lo);
}else {
JListBModel.removeElement(fo);
}
}
};
JListA.addListSelectionListener(listSelectionListener);
//
//
JListB.setModel(JListBModel);
JListB.setFocusable(false);
JListBScrollPane.setBounds(745, 100, 200, 200);
cp.add(JListBScrollPane);
//
//
setResizable(false);
setVisible(true);
//
}
//
//
public static void main(String[] args) {
new test("test");
}
}
bitte um Hilfe stellung, wo mache ich denk fehler, dass es nicht klappt.
danke vorraus
mfg
Zuletzt bearbeitet: