Я пытаюсь создать сетку из различных элементов, которые отображаются на JPanel, как показано здесь:
JPanel secondPanel = new JPanel();
secondPanel.setBounds(345,40,640,700);
secondPanel.setBackground(new java.awt.Color(90,90,100));
// Here secondPanel is given a gridlayout. So the items appear in a gridded look.
secondPanel.setLayout(new GridLayout(3,3,50,50));
frame.add(secondPanel);
// The following are used as an example of different JPanels. I am using this to give a demonstration of how the item layout would sort of look like.
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
secondPanel.add(new JPanel());
Однако каждый элемент имеет одинаковые свойства.Все они имеют поле выбора.У них у всех есть JPanel, у них у всех есть фрагмент текста и т. Д. Я подумал, что будет проще просто создать класс, который имеет все эти значения, а затем добавить их в JPanel, каждый из которых является отдельным экземпляром.
Class:
import javax.swing.JPanel;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
public class itemClass {
itemClass(String name, double cost){
JPanel box = new JPanel();
JLabel nameLabel = new JLabel();
nameLabel.setText(name);
JCheckBox selectBox = new JCheckBox("$ "+cost);
box.setForeground(new java.awt.Color(80,80,90));
box.setSize(50, 50);
box.add(selectBox);
}
}
И здесь я пытаюсь создать экземпляры классов и добавить их на эту панель, используя метод add
:
for (int i = 0; i < 9; i ++) {
secondPanel.add(new itemClass("T-Shirt",20));
}
Проблема в том, чтоadd
метод не принимает в случаях itemClass
.Итак, я ищу способ создать класс различных компонентов свинга и затем добавить их на панель secondPanel
.