我有一个 MainForm 类,它扩展了 JFrame 并在其中有一个 JList。
现在单击一个按钮会弹出一个 JDialog 以输入凭据,该凭据又会下载要填充到父窗口的 Jlist 中的值列表。
现在如何从我的子类中填充我的 mainForm 属性?
MainForm.java
public class MainForm extends JFrame {
static MainForm mainForm;
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
mainForm = new MainForm();
mainForm.setVisible(true);
}
});
}
public MainForm() {
loadUI();
}
private void loadUI() {
JPanel panel = new JPanel();
getContentPane().add(panel);
final JList<String> jList = new JList<String>();
final JButton settings = new JButton(settingImage);
settings.setBorder(new EmptyBorder(3, 0, 3, 0));
settings.setBounds(50, 60, 100, 30);
vertical.add(settings);
settings.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
LoginDialog loginDlg = new LoginDialog(mainForm);
loginDlg.setVisible(true);
// if logon successfully
if(loginDlg.isSucceeded()){
settings.setText("Hi " + loginDlg.getUsername() + "!");
}
}
});
add(vertical, BorderLayout.WEST);
add(jList, BorderLayout.CENTER);
对话框窗口.java
public LoginDialog(final Frame parent) {
super(parent, "Login", true);
//
JPanel panel = new JPanel(new GridBagLayout());
//some more lines of code
btnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ftpAuthenticationVO.setIp(urlIP.getText());
ftpAuthenticationVO.setUsername(tfUsername.getText());
ftpAuthenticationVO.setPassword(pfPassword.getText());
FileUtils.saveFTPDetails(ftpAuthenticationVO);
if(ftpConnect.startFTP(CommonConstants.TEMP_TXT_FILE));
{
List<String> list = readSplitTextFiles.readTextFile(CommonConstants.TEMP_TXT_FILE);
//This is the value that is to be populated in the Jlist inside the parent window.
}