Мое предположение: объект loanController, для которого были вызваны указанные выше методы, для которого вы устанавливаете текст его JTextFields, не является тем же объектом loanController, который визуализируется пользователем.
Но без дополнительной информации это всего лишь предположение.
Редактировать 1
Вот свидетельство того, что я могу быть прав:
listSelectionModel.addListSelectionListener(new loansController(model));
Вы создаете новый loanController объект в качестве слушателя вместо использования this :
listSelectionModel.addListSelectionListener(this);
Edit 2
Andтеперь с почти SSCCE-кодом ниже (слишком длинным, чтобы быть истинным SSCCE, но достаточно коротким), я доказал, что мое предположение на самом деле правильно, что вы устанавливаете текст неправильного объекта, который не визуализируется,Если вы найдете закомментированные строки, закомментируйте одну строку и раскомментируйте другую, чтобы увидеть изменения в поведении:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
@SuppressWarnings("serial")
public class loansController extends JFrame implements ActionListener,
ListSelectionListener {
private JButton addButton;
private JButton deleteButton;
private JButton viewDetailsButton;
private JPanel btnsPnl = new JPanel();
private JPanel mainPnl = new JPanel();
private JPanel dataPnl = new JPanel();
private JPanel listPnl = new JPanel();
private JLabel loanIdLabel = new JLabel("LoanId");
private JLabel loanName = new JLabel("Loan Name");
private JTextField loanIdFld = new JTextField(15);
private JTextField lenderFld = new JTextField(15);
private JTextField loanamountFld = new JTextField(15);
private DefaultListModel dlm = new DefaultListModel();
private JList jlst = new JList(dlm);
private int selectedListIndex;
private ListSelectionModel listSelectionModel;
public loansController() {
addButton = new JButton("Add Loan");
deleteButton = new JButton("Delete Loan");
viewDetailsButton = new JButton("View Details of all Loans");
}
public void buildGUI() {
String[] data = {"one", "two", "three", "four"};
for (String datum : data) {
dlm.addElement(datum);
}
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
dataPnl.setLayout(new GridLayout(4, 2));
dataPnl.add(loanIdLabel);
dataPnl.add(loanIdFld);
dataPnl.add(loanName);
dataPnl.add(lenderFld);
dataPnl.add(loanamountFld);
gbl.setConstraints(dataPnl, gbc);
mainPnl.add(dataPnl);
Dimension listDim = new Dimension(50, 90);
jlst.setPreferredSize(listDim);
gbc.gridx = 0;
gbc.gridy = 1;
gbl.setConstraints(listPnl, gbc);
listPnl.add(jlst);
listSelectionModel = jlst.getSelectionModel();
// ****** here, comment one line and uncomment the other
listSelectionModel.addListSelectionListener(new loansController());
// !! listSelectionModel.addListSelectionListener(this);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.gridwidth = 2;
gbl.setConstraints(btnsPnl, gbc);
addButton.addActionListener(this);
deleteButton.addActionListener(this);
viewDetailsButton.addActionListener(this);
btnsPnl.add(addButton);
btnsPnl.add(deleteButton);
btnsPnl.add(viewDetailsButton);
mainPnl.add(listPnl);
mainPnl.add(btnsPnl);
getContentPane().add(mainPnl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 400);
setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == addButton) {
} else if (ae.getSource() == deleteButton) {
} else if (ae.getSource() == viewDetailsButton) {
}
}
/*
* This method clears the text field after the action Performed method for
* the add and delete Buttons
*/
public void setClearTextFld() {
loanIdFld.setText("");
lenderFld.setText("");
loanamountFld.setText("");
}
public void valueChanged(ListSelectionEvent e) {
listSelectionModel = (ListSelectionModel) e.getSource();
int maxselectedListIndex = listSelectionModel.getMaxSelectionIndex();
int minselectedListIndex = listSelectionModel.getMinSelectionIndex();
System.out.println(selectedListIndex);
if (!listSelectionModel.isSelectionEmpty()) {
for (int i = minselectedListIndex; i <= maxselectedListIndex; i++) {
if (listSelectionModel.isSelectedIndex(i)) {
selectedListIndex = i;
System.out.println("inside valueChanged. selectedListIndex");
System.out.println(selectedListIndex);
loanIdFld.setText("1234");
lenderFld.setText("Test LoaN NAME");
loanamountFld.setText("Test loan amount");
}
}
}
}
public static void main(String[] args) {
loansController controller = new loansController();
controller.buildGUI();
}
}
Обратите внимание, что именно это вам следует делать: упрощать код, пока вы не изолируете проблему какэто позволяет вам решить ее намного проще, и если это не удастся, то, если вы разместите этот компилируемый исполняемый код, это позволит us помочь вам решить эту проблему более легко.Этот процесс называется созданием SSCCE или Short, Self Contained, Correct (Compilable), Example
Edit 3
A SSCCE лучше:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
@SuppressWarnings("serial")
public class loansController extends JFrame implements ListSelectionListener {
private JPanel mainPnl = new JPanel();
private JPanel dataPnl = new JPanel();
private JPanel listPnl = new JPanel();
private JTextField loanIdFld = new JTextField(15);
private JTextField lenderFld = new JTextField(15);
private JTextField loanamountFld = new JTextField(15);
private DefaultListModel dlm = new DefaultListModel();
private JList jlst = new JList(dlm);
private ListSelectionModel listSelectionModel;
public void buildGUI() {
String[] data = {"one", "two", "three", "four"};
for (String datum : data) {
dlm.addElement(datum);
}
dataPnl.setLayout(new GridLayout(4, 2));
dataPnl.add(loanIdFld);
dataPnl.add(lenderFld);
dataPnl.add(loanamountFld);
mainPnl.add(dataPnl);
Dimension listDim = new Dimension(50, 90);
jlst.setPreferredSize(listDim);
listPnl.add(new JScrollPane(jlst));
listSelectionModel = jlst.getSelectionModel();
// ****** here, comment one line and uncomment the other
// !! listSelectionModel.addListSelectionListener(new loansController());
listSelectionModel.addListSelectionListener(this);
mainPnl.add(listPnl);
getContentPane().add(mainPnl);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setLocationRelativeTo(null);
setVisible(true);
}
public void valueChanged(ListSelectionEvent e) {
System.out.println("inside valueChanged. ");
loanIdFld.setText("1234");
lenderFld.setText("Test LoaN NAME");
loanamountFld.setText("Test loan amount");
}
public static void main(String[] args) {
new loansController().buildGUI();
}
}