如何在java摆中从第二个JFrame获取数据?我有一个带有JLabel和JButton的帧。单击JButton时,它会打开另一个带有自定义日历的帧。我想选择日期(通过JButton)并将日期放在主JFrame的JLabel中。我不想创建第一帧的新实例,因为还有其他用户可能键入的我不想删除的信息。
正如许多地方所建议的那样,使用2JFrame
s不是一个好的做法。您可以使用下面的示例中的JDialog来代替第二个JFrame。
我们可以使用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;
}
}
问题内容: 我有1100、1002、1022等数字。我想使用单个数字,例如,对于第一个数字1100,我希望具有1、1、0、0。 如何用Java获取它? 问题答案: 为此,你将使用(mod)运算符。 mod运算符将为你提供对int进行除法运算的其余部分。 所以, 因为: 注意:如Paul所述,这将为你提供相反的数字。你将需要将它们压入堆栈并以相反的顺序弹出。 代码以正确的顺序打印数字:
问题内容: 我有一个带有两个单独的JPanels的JFrame。一个JPanels充满了JButton,而另一个则有几个文本字段。我通过JFrame在按钮上添加了鼠标侦听器,我希望这样做,以便从第一个JPanel触发事件时,第二个JPanel中的文本字段会发生更改。这两个面板有各自的类。我将如何去做呢? 问题答案: 使用MVC,Model-View-Control,关注点分离。 让拥有您的听众的控
我有一个带有两个独立JPanels的JFrame。其中一个JPanels填充了JButtons,而另一个则有几个文本字段。我通过JFrame向按钮添加了鼠标监听器,我想让它在第一个JPanel触发一个事件时,第二个JPanel中的文本字段发生变化。这两个面板有自己的类。我该如何着手做这件事?
我在我的项目中添加了一个jDialog Swing表单,如图所示: 现在我想从jtextField获取到父JFrame的值,当我关闭这个JDialog时,我搜索了一下它,发现: 但是编译器告诉我在我的JDialog中没有名为
问题内容: 我试图将我的Swing GUI与实际代码分开。简而言之,我希望用户启动一个过程(基于用户的选择);在这种情况下,将不再需要JFrame。 我不知道的是如何与Main.class共享来自GUI.class的用户选择。 您对我有什么建议吗? 这是我的代码: 问题答案: 一个很好的方法是使用 机制。 遵循的步骤: 创建一个回调接口 } 类将实现接口,但不提供任何实现 制作类 现在创建一个类的
我花了一点时间浏览堆栈溢出和互联网寻找我的问题的答案,但是我发现所有的答案都很难理解,我不确定它们中是否有任何一个与我的问题相关,所以我决定我需要帮助正确的背景。 我正在创建一个程序,将根据输入的特定类型的图形给出一系列解决方案。我真诚地挣扎着在第一个JFrame中从我的JComboBox中获取数据,并在第二个JFrame中显示它。 我有两个类,GraphEquationSolverGUI和定义方