1
我正在製作一個戰列艦遊戲,我試圖找出一種方法來控制窗格中的按鈕,這樣我就可以拖放它們並使用默認列表模型跟蹤它們的索引。如果我添加字符串或ImageIcons,它會工作正常,但與按鈕我得到了不同的東西。如何在DefaultListModel中添加JButtons?
這裏是我的代碼:
public class ListModelExample extends JPanel {
JList list;
DefaultListModel model;
int counter = 15;
public ListModelExample() {
setLayout(new BorderLayout());
model = new DefaultListModel();
list = new JList(model);
JScrollPane pane = new JScrollPane(list);
JButton addButton = new JButton("Add Element");
JButton removeButton = new JButton("Remove Element");
final JButton button = new JButton("button");
for (int i = 0; i < 5; i++)
model.addElement(button);
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
model.addElement(button);
counter++;
}
});
removeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (model.getSize() > 0)
model.removeElementAt(0);
}
});
add(pane, BorderLayout.NORTH);
add(addButton, BorderLayout.WEST);
add(removeButton, BorderLayout.EAST);
}
public static void main(String s[]) {
JFrame frame = new JFrame("List Model Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new ListModelExample());
frame.setSize(260, 200);
frame.setVisible(true);
}
}
如果我添加按鈕我得到這樣的結果:
所以我的問題是:怎麼可能使按鈕會出現在正常和不作爲默認列表模型中的文本?
你爲什麼要添加按鈕列出? – Elior 2013-04-07 13:55:31
你可以使用「setName(String n)」方法.. 添加一個靜態計數器..併爲每個按鈕將其轉換爲字符串並設置它的按鈕名稱..然後檢查按鈕名稱他的位置和所有東西你想.. – Elior 2013-04-07 14:01:22
組件應該永遠不會被放置在Swing組件模型中。 1+給mKorbel的回答。 – 2013-04-07 14:12:02