Очевидно, мои навыки Google-fu немного тусклые, и я не могу понять, как получить JTextField при нажатии JButton.
Обратите внимание, что я удалил некоторые части кода для удобства чтения.
Если вы видите некоторую переменную, которая не определена, предположите, что она была частью этого кода.
Как есть, код работает нормально.
public final class Main {
// Some removed code was here
private void prepareGUI() {
// Top right stuff
JPanel topRightPanel = new JPanel();
topRightPanel.setLayout(new FlowLayout());
JLabel topRightLabel = new JLabel("Address");
JTextField topRightTextField = new JTextField("", 15);
topRightTextField.setName("add_address");
JButton topRightButton = new JButton("Add");
topRightButton.setName("add_btn");
topRightPanel.add(topRightLabel);
topRightPanel.add(topRightTextField);
topRightPanel.add(topRightButton);
mainFrame.add(topRightPanel);
// The button in question. Very suggestive name, I know.
topRightButton.addActionListener(new GenericButtonListener());
genericButtonListener.setKernel(kernel);
// some other non relevant stuff here
mainFrame.setVisible(true);
}
}
public class GenericButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
String btnName = btn.getName();
if(btnName.toLowerCase().contains("add_btn")) {
addBtn(btn);
}
}
public void addBtn(JButton button){
SshFileIO sshFileIO = kernel.getFileIO();
// Get field text here
}
}
Моя текущая дилемма состоит в том, как получить указанное значение текстового поля внутри GenericButtonListener
.
Я понимаю, что могу использовать getText
, чтобы получить значение текстового поля, однако я не понимаюУ меня нет доступа к этой переменной внутри функции actionPerformed
.
Полагаю, это скорее проблема с областями видимости, чем с чем-либо еще.
Мне просто нужно немного указать в правильном направлении,руки не требуются.
Больно очевидно, что я новичок в Java.