Java swing 根据集合给一份列表框 列表框有有单选按钮和编辑按钮
时间: 2024-01-17 08:03:47 浏览: 29
首先,你需要创建一个 `JList` 组件来显示集合中的元素。然后,你可以通过使用 `JRadioButton` 和 `JButton` 组件来添加单选按钮和编辑按钮。
下面是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
public class ListExample extends JFrame {
private JList<String> list;
private DefaultListModel<String> listModel;
public ListExample() {
setTitle("List Example");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
listModel = new DefaultListModel<>();
list = new JList<>(listModel);
JScrollPane scrollPane = new JScrollPane(list);
scrollPane.setPreferredSize(new Dimension(200, 200));
JPanel buttonPanel = new JPanel(new GridLayout(0, 1));
JRadioButton radioButton = new JRadioButton("Select Item");
JRadioButton editButton = new JRadioButton("Edit Item");
JButton addButton = new JButton("Add Item");
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(radioButton);
buttonGroup.add(editButton);
buttonPanel.add(radioButton);
buttonPanel.add(editButton);
buttonPanel.add(addButton);
addButton.addActionListener(e -> {
String input = JOptionPane.showInputDialog("Enter a new item:");
if (input != null && !input.isEmpty()) {
listModel.addElement(input);
}
});
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(scrollPane, BorderLayout.CENTER);
contentPane.add(buttonPanel, BorderLayout.EAST);
pack();
setLocationRelativeTo(null);
}
public static void main(String[] args) {
ArrayList<String> items = new ArrayList<>();
items.add("Item 1");
items.add("Item 2");
items.add("Item 3");
ListExample example = new ListExample();
for (String item : items) {
example.listModel.addElement(item);
}
example.setVisible(true);
}
}
```
在这个示例中,我们创建了一个 `JList` 组件,使用 `DefaultListModel` 作为数据模型。我们还创建了一个包含单选按钮和编辑按钮的 `JPanel`。
当用户点击“添加按钮”时,我们使用 `JOptionPane.showInputDialog` 显示一个对话框,让用户输入一个新的项目。如果用户输入了一个非空的字符串,我们将其添加到列表中。
最后,我们将 `JList` 组件和按钮面板添加到 `JFrame` 的内容面板中,并使用 `pack` 方法调整窗口的大小。运行程序后,你应该能够看到一个带有单选按钮和编辑按钮的列表框。