JButtons необходимо изменить 8 JTextFields, используя массив.Слушать кнопки или текст?

StackOverflow https://stackoverflow.com/questions/1386888

Вопрос

Это домашнее задание, и эти вопросы расширяются. Вот этот

Итак, есть кнопка 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».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top