所以我在帧1中有一个帧1和帧2,在帧1中有4个JButton JTextField,在4 JTextField有1个JButton,用户输入一个整数值...用户输入后,用户按下JButton,JFrame将特征2...
在第二帧中,我有1个JTextArea,它将打印出用户输入的值
那么如何发送值从第1帧到第2帧?
实际上,在这个项目中,我给出了一个构造函数,在其中我生成了一个类,在Jframe1“coba.java”中,我用以下代码生成了新的对象:
coba ar = new coba();
在Jframe1中,我有一个方法,其中DDA有一个代码:
double X0 = Double.parseDouble (x0.getText ());
double X1 = Double.parseDouble (x1.getText ());
double Y0 = Double.parseDouble (y0.getText ());
double Y1 = Double.parseDouble (y1.getText ());
int no = 1;
ar.X0 = X0;
ar.X1 = X1;
ar.Y0 = Y0;
ar.Y1 = Y1;
基本上,第1帧需要通过某种观察器实现直接或间接引用第2帧。。。
这样,您所需要做的就是在第2帧中提供某种方法,允许您将所需的信息传递给它,以便它可以更新相关的文本区域。
就我个人而言,我更喜欢使用界面,因为它可以防止调用者弄乱它不应该做的事情
哦,你可能还想通读一下多JFrames的使用:好的还是坏的实践?
例如
NotePad
接口
阻止SecaryPane
对底层实现进行更改,因为它实际知道的唯一方法是addNote
方法
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class CrossCalling {
public static void main(String[] args) {
new CrossCalling();
}
public CrossCalling() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
NotePadPane notePadPane = new NotePadPane();
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new SecretaryPane(notePadPane));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
JFrame noteFrame = new JFrame("Testing");
noteFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
noteFrame.setLayout(new BorderLayout());
noteFrame.add(notePadPane);
noteFrame.pack();
noteFrame.setLocation(frame.getX(), frame.getY() + frame.getHeight());
noteFrame.setVisible(true);
}
});
}
public interface NotePad {
public void addNote(String note);
}
public class SecretaryPane extends JPanel {
private NotePad notePad;
public SecretaryPane(NotePad pad) {
this.notePad = pad;
setLayout(new GridBagLayout());
JButton btn = new JButton("Make note");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
pad.addNote(DateFormat.getTimeInstance().format(new Date()));
}
});
add(btn);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
}
public class NotePadPane extends JPanel implements NotePad {
private JTextArea ta;
public NotePadPane() {
setLayout(new BorderLayout());
ta = new JTextArea(10, 20);
add(new JScrollPane(ta));
}
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
@Override
public void addNote(String note) {
ta.append(note + "\n");
}
}
}
您可以创建一个线程来检查一些静态变量的更改,并相应地更新帧。例如,在显示两个帧后的某处:
new Thread(new Runnable(){
public void run(){
try{
while(true){
if(coba.HASNEWVALUE){
updateFrame(); // some function that does the updating and communicating
coba.HASNEWVALUE = false;
}
}
}
catch(Exception e){
e.printStackTrace();
}
}
}).start();
无论何时要传递新值,请设置适当的值并设置coba。HASNEWVALUE为true,这样您的帧将在每次coba时通过updateFrame()函数自动获取所需的更新。HASNEWVALUE为TRUE。
所以我在帧1中有一个帧1和帧2,在帧1中有4个JButton JTextField,在4 JTextField有1个JButton,用户输入一个整数值...用户输入后,用户按下JButton,JFrame将特征2... 在第二帧中,我有1个JTextArea,它将打印出用户输入的值 那么如何发送值从第1帧到第2帧?
这个问题可能听起来多余,因为标题和另一个问题完全一样。然而,有一个简单的区别——我没有在构造函数中给出返回类型。话虽如此,我一定是在做其他同样愚蠢的事情,我似乎不知道是什么。我在这里看到了类似的执行工作。为什么它不适用于我的代码? 这是演示final关键字如何工作的代码的一部分(忽略注释): 问题是,这个答案显示了同样事情的良好执行,而在Netbeans中,我得到了对super的调用必须是构造函数
我有一个有35列的表,其中的条目像day1、day2、day3------一直到day31。我已经用null allow accepted定义了这31列。我正在使用JdbcTemplate方法update(字符串sql,Object…args)插入记录,抛出DataAccessException,该列没有值或为空。。空值插入到表中。。那很好。 但当我更新表时,哪个列已经有一些值,但当前json条目
问题内容: 我有一JFrame堂课,它是在Netbeans的设计部分制作的。我正在尝试创建一个登录按钮,该按钮将关闭当前框架并打开另一个框架,无论如何我可以这样做吗? 我努力了: 但我希望它在设计部分中可编辑! 问题答案: 双击NETBEANS中的“登录”按钮,或在Click事件上添加事件监听器(ActionListener)
我发送JSON文件(现在从邮递员)的身体是这样的: 控制器上的方法是: 我犯了个错误- 如何解决这个问题?
嗯,我一直在研究基于用户代理的子域间共享会话保护。 我非常惊讶,在IE 11预览版最近发布之前,它一直运行良好。有 2 个子域 example.com和sub.example.com 我已经拦截了对两个域的请求,似乎发送到每个域的用户代理HTTP标头是不同的。 example.com请求有: 用户代理: Mozilla/5.0 (视窗 NT 6.1;哇64;三叉戟/7.0;rv:11.0) 像壁虎