JButtons необходимо изменить 8 JTextFields, используя массив.Слушать кнопки или текст?
-
21-09-2019 - |
Вопрос
Это домашнее задание, и эти вопросы расширяются. Вот этот
Итак, есть кнопка First
, Prev
, Next
, и Last
Каждый должен изменить
Item ID, Name, Rating, Price, Units, Value, Fee, ValueW/Fee, Total Inventory Value
Последний представляет собой статическую сумму всех единиц.
Я не уверен, следует ли мне заставлять каждую кнопку выполнять несколько таких вызовов.
productName.setText( product.getProductName() );
itemNumber.setText( String.valueOf( product.getItemNumber() ) );
Или заставьте каждую JTextArea прослушивать кнопку, а затем измените ее поле.Это вообще работает?
Решение
Зарегистрируйте ActionListener для каждой кнопки.В теле метода actionPerformed этого прослушивателя ActionListener получите отображаемый элемент и передайте его методу, который будет отвечать за установку значений в текстовые поля.
Что-то вроде:
JButton button = new JButton("Next");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DVDObject obj = getNextDVD();
populateFields(obj);
}
});
...
private DVDObject getNextDVD() {
// gets the next object to display
// you could call this method for each of the buttons,
// passing in an argument that determines which Object
// to return (first, last, next, previous, whatever)
}
private void populateFields(DVDObject dvd) {
// write out the values from the object passed in to the
// fields
}
Я предполагаю, что у вас есть какая-то коллекция объектов, содержащая всю информацию о DVD. Я рискнул и назвал ее здесь «DVDObject».