メソッドを使用するJCheckBox
のと同じように、Javaでタイプのアイテムを動的に追加する方法はありますか?JComboBox
addItem
質問する
135 次
2 に答える
1
レンダリング コンポーネントに実際のチェック ボックスを使用することもできますが、これは数行短いことに注意してください。
import java.awt.*;
import javax.imageio.ImageIO;
import javax.swing.*;
class JCheckList {
public static void main(String[] args) {
Runnable r = new Runnable() {
@Override
public void run() {
JPanel gui = new JPanel(new BorderLayout());
JLabel l = new JLabel("Ctrl/shift click to select multiple");
gui.add(l, BorderLayout.PAGE_START);
JList<String> list = new JList<String>(
ImageIO.getReaderFileSuffixes());
list.setCellRenderer(new CheckListCellRenderer());
gui.add(list, BorderLayout.CENTER);
JOptionPane.showMessageDialog(null, gui);
}
};
// Swing GUIs should be created and updated on the EDT
// http://docs.oracle.com/javase/tutorial/uiswing/concurrency
SwingUtilities.invokeLater(r);
}
}
class CheckListCellRenderer extends DefaultListCellRenderer {
String checked = new String(Character.toChars(9745));
String unchecked = new String(Character.toChars(9746));
@Override
public Component getListCellRendererComponent(
JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
Component c = super.getListCellRendererComponent(
list,value,index,isSelected,cellHasFocus);
if (c instanceof JLabel) {
JLabel l = (JLabel)c;
String s = (isSelected ? checked : unchecked) + (String)value;
l.setText(s);
}
return c;
}
}
于 2013-09-19T09:58:45.270 に答える
1
複数のアイテムを別のコンポーネントに追加する場合は、次のようなものが効果的です。
List<Component> myList = new Arraylist<Component>() //List for storage
Item myItem = new Item(); //New component
myList.add(myItem); //Store all the components to add in the list
for(int i = 0; i < myList.size; i++){
myjCheckBox.add(myList[i]); //Add all items from list to jCheckBox
}
上記の例では、jCheckBox で継承されたこのメソッドを使用しており、必要なものを提供できるはずです。
それが役に立てば幸い!
于 2013-09-19T08:59:36.463 に答える