Я пытаюсь смоделировать систему проката автомобилей в графическом интерфейсе.
Поскольку я не очень разбираюсь в компонентах Swing, я решил создать список автомобилей с помощью GridBagLayout.
Каждый ряд имеет разные панели, каждая из которых имеет свои цены аренды и названия автомобилей.
Карлистские
Кнопка «Подробности» доступна для всех панелей в списке. Я ищу способ, которым «Детали» получают заголовок и текст цены с панели, где она была нажата, а затем сохраняет их внутри переменных.
до сих пор всякий раз, когда я нажимаю на него, он только сохраняет и отправляет текст с последней панели в списке, даже если я нажал первую кнопку в списке.
CarDetails
Это событие кнопки:
JButton btnNewButton = new JButton("details");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String Car, price;
Car = Name.getText();
price = Price.getText();
Main.add(new CarD(Car,price), "2");
cl.show(Main, "2");
add.setVisible(false);
}
});
EDIT:
Следуя примеру camickr, все, что осталось, - это получить метки из родительской панели, используя место, где они находятся внутри нее.
JButton btnNewButton = new JButton("Details");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String Car, price;
JButton button = (JButton)e.getSource();
JPanel panel = (JPanel)button.getParent();
JLabel N = (JLabel)panel.getComponentAt(202, 62);
JLabel P = (JLabel)panel.getComponentAt(202, 24);
Car = N.getText();
price = P.getText();
Main.add(new CarD(Car,price), "2");
cl.show(Main, "2");
add.setVisible(false);
}
});