存储在会话中的java变量?/在JFrames之间传递变量
我有两个Jframe,如何将变量Meno从第一个Jframe传递到第二个Jframe。 我正在考虑将其存储在会话中,但不知道是否有效
第二帧上的代码如下所示
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String Meno = login.Meno;
String Prispevok = jTextArea2.getText();
try {
connection = DriverManager.getConnection(login.host + login.databaza, login.username, login.password);
java.sql.Statement st = connection.createStatement();
st.executeUpdate("INSERT INTO history (`Name`, `Post`) " + "VALUES ('"+Meno+"' , '"+Prispevok+"')");
} catch (SQLException err) {
System.out.println(err.getMessage());
}
}
如果我问错了,我很抱歉,但我是新来的。谢谢朋友们:)
# 1 楼答案
这条线
让我觉得你有点
把你的框架说成
您想要的是让
Login
类成为应用程序的模型,它将分发更改。这意味着您没有public
成员,而是一个getter/setter方法如果要显示该名称,可以执行以下操作:
然后,因为名称可能会更改,所以需要一种机制来更新GUI组件。这可以使用侦听器模式完成:
要在文本字段中启用更新,可以执行以下操作:
因为您只有一个
Login
实例(您应该使用单例模式),所以另一个帧可以像这样注册为侦听器。下面是如何声明singletonLogin
类:然后,您可以在
JFrame
中使用它,如下所示:# 2 楼答案
您可以创建一个自定义类(扩展JFrame),其中可以有
public void setMeno(String meno)
和public String getMeno()
等方法(如果需要),以便将变量传递给JFrame。我不确定这是否是你的意思,因为你没有给出很多细节基本示例:
如果您有这样一个类,那么可以通过对所创建的对象(JFrame2的实例)调用
setMeno(meno)
,轻松地在第二个JFrame中设置meno# 3 楼答案
解决方案1: 创建一个类名,将其命名为常量,并存储字符串meno。然后随时随地使用
然后在JFrame1中将该值设置为meno,如
然后从JFrame 2中的常数中检索值
解决方案2: 在构造函数中传递值meno,如
并检索JFrame2中的meno值,如
希望这将帮助你,如果你需要进一步的帮助,请在下面发表评论