【发布时间】:2013-09-01 18:30:51
【问题描述】:
我有一个 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);
DialogWindow.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.
}
【问题讨论】:
-
您是否在动作监听器中引用了 JList?例如jlist.add(value) 等
-
在
MainWindow中你有LoginDialog loginDlg = new LoginDialog(mainForm,jList);,但是你向我们展示的LoginDialog构造函数只接受一个单个 参数。那到底是哪条路呢? -
jlist.add(value),在 JDialog 关闭后,如何从 JDialog 获取列表的值?我的 MainForm 只是调用 LoginDialog 类的构造函数。
-
我刚刚编辑过。我正在尝试一些东西,但它肯定被留在了那里。
-
mainForm到底是什么?