从单独的 JFrame 获取数据

如何从 java swing 中的第二个 JFrame 获取数据?我有一个带有 JLabel 和 JButton 的框架。单击 JButton 时,它会打开另一个带有自定义日历的框架。我想选择日期(通过 JButton)并将日期放在主 JFrame 的 JLabel 中。我不想创建第一帧的新实例,因为我不想删除用户可能键入的其他信息。



ABOUTYOU
浏览 143回答 1
1回答

有只小跳蛙

正如许多地方所建议的那样,使用 2 JFrames 不是一个好习惯。而不是第二个,您可以在下面的示例JFrame中使用类似的。JDialog我们可以获取用户输入的日期getDate()并在框架中使用它。import javax.swing.*;import java.awt.*;import java.awt.event.*;public class TwoFrames{  public static void main(String[] args)  {    JFrame frame = new JFrame("Frame");    JLabel label = new JLabel("No date selected");    JButton button = new JButton("Open date dialog");    button.addActionListener(new ActionListener()    {      @Override      public void actionPerformed(ActionEvent e)      {        DateDialog dateDialog = new DateDialog(frame);        dateDialog.setLocationRelativeTo(frame);        dateDialog.setVisible(true);        label.setText(dateDialog.getDate());      }    });    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    frame.getContentPane().add(label, BorderLayout.CENTER);    frame.getContentPane().add(button, BorderLayout.SOUTH);    frame.setBounds(300, 200, 400, 300);    frame.setVisible(true);  }}class DateDialog extends JDialog{  private String date;  DateDialog(Frame owner)  {    super(owner, "Select date", true);    JTextField dateField = new JTextField(20);    JButton okButton = new JButton("OK");    okButton.addActionListener(new ActionListener()    {      @Override      public void actionPerformed(ActionEvent e)      {        date = dateField.getText();        setVisible(false);      }    });    getContentPane().add(dateField, BorderLayout.CENTER);    getContentPane().add(okButton, BorderLayout.SOUTH);    setSize(300, 200);  }  String getDate()  {    return date;  }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java