Sina.iRoid
یک شنبه 27 مهر 1393, 20:15 عصر
سلام دوستان. ممنون میشم اگر راهنماییم کنید.
ابتدا کدهای من و ببینید:
کلاس MultipleListFrame:
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
@SuppressWarnings("serial")
public class MultipleListFrame extends JFrame{
protected JList<String> colorList;
protected JList<String> copyList;
protected JButton copyBtn;
protected String[] colorsName = {"Blue", "Red", "Black", "Yellow", "White", "Green"};
//Constructor
public MultipleListFrame() {
super("Multiple List Selection");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
colorList = new JList<>(colorsName);
colorList.setVisibleRowCount(3);
colorList.setSelectionMode(ListSelectionModel.MULT IPLE_INTERVAL_SELECTION);
add(new JScrollPane(colorList));
copyBtn = new JButton("Copy >>");
add(copyBtn);
copyList = new JList<>();
copyList.setVisibleRowCount(3);
copyList.setFixedCellWidth(100);
copyList.setFixedCellHeight(15);
copyList.setSelectionMode(ListSelectionModel.SINGL E_SELECTION);
add(new JScrollPane(copyList));
ButtonHandler ob = new ButtonHandler(this);
copyBtn.addActionListener(ob);
setSize(400, 400);
setVisible(true);
}
}
کلاس ButtonHandler:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonHandler implements ActionListener{
private MultipleListFrame ob;
//Constructor
public ButtonHandler(MultipleListFrame ob) {
this.ob = ob;
}
@Override
public void actionPerformed(ActionEvent e) {
ob.copyList.setListData((String[]) ob.colorList.getSelectedValues());
}
}
و کلاس اصلی:
public class DriverClass {
public static void main(String[] args) {
new MultipleListFrame();
}
}
دوستان این برنامه کرش می کنه اما نمی دونم چرا. درضمن در کلاس ButtonHandler وقتی که از متد getSelectedValues() استفاده میکنم، یه خط سیاه روی این کتد میکشه و در ضمن پیغام میده که باید حتما به String کست کنیم. من دلیل کست کردن و اون خط سیاه و نمی دونم. به نظرم مشکل کرش برنامه هم از همینجاست.
ممنون میشم اگر راهنماییم کنید:لبخندساده:
ابتدا کدهای من و ببینید:
کلاس MultipleListFrame:
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
@SuppressWarnings("serial")
public class MultipleListFrame extends JFrame{
protected JList<String> colorList;
protected JList<String> copyList;
protected JButton copyBtn;
protected String[] colorsName = {"Blue", "Red", "Black", "Yellow", "White", "Green"};
//Constructor
public MultipleListFrame() {
super("Multiple List Selection");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
colorList = new JList<>(colorsName);
colorList.setVisibleRowCount(3);
colorList.setSelectionMode(ListSelectionModel.MULT IPLE_INTERVAL_SELECTION);
add(new JScrollPane(colorList));
copyBtn = new JButton("Copy >>");
add(copyBtn);
copyList = new JList<>();
copyList.setVisibleRowCount(3);
copyList.setFixedCellWidth(100);
copyList.setFixedCellHeight(15);
copyList.setSelectionMode(ListSelectionModel.SINGL E_SELECTION);
add(new JScrollPane(copyList));
ButtonHandler ob = new ButtonHandler(this);
copyBtn.addActionListener(ob);
setSize(400, 400);
setVisible(true);
}
}
کلاس ButtonHandler:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ButtonHandler implements ActionListener{
private MultipleListFrame ob;
//Constructor
public ButtonHandler(MultipleListFrame ob) {
this.ob = ob;
}
@Override
public void actionPerformed(ActionEvent e) {
ob.copyList.setListData((String[]) ob.colorList.getSelectedValues());
}
}
و کلاس اصلی:
public class DriverClass {
public static void main(String[] args) {
new MultipleListFrame();
}
}
دوستان این برنامه کرش می کنه اما نمی دونم چرا. درضمن در کلاس ButtonHandler وقتی که از متد getSelectedValues() استفاده میکنم، یه خط سیاه روی این کتد میکشه و در ضمن پیغام میده که باید حتما به String کست کنیم. من دلیل کست کردن و اون خط سیاه و نمی دونم. به نظرم مشکل کرش برنامه هم از همینجاست.
ممنون میشم اگر راهنماییم کنید:لبخندساده: