java – 如何从另一个类更改或分配值到私有变量JTextField?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何从另一个类更改或分配值到私有变量JTextField?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2804字,纯文字阅读大概需要5分钟。
内容图文
![java – 如何从另一个类更改或分配值到私有变量JTextField?](/upload/InfoBanner/zyjiaocheng/778/7cd96228e6d54d488791e80ea12ab9cd.jpg)
对不起,如果这是另一个愚蠢的愚蠢问题,但我仍然是Java编程语言的新手.
我有3个类:InputClass,PreviewClass和MainClass.
MainClass包含运行程序的主要方法. InputClass包含一个用于输入的私有JTextField和一个用于将文本设置为PreviewClass中的JTextField的JButton. PreviewClass包含一个私有JTextField,用于在InputClass中显示输入的文本.
我怎么能这样做(在PreviewClass中为JTextField赋值)而不创建InputClass的实例,然后使用getter-method-like来获取它拥有的值,或者不使InputClass中的JTextField成为静态变量,这样我就可以访问它用一些静态方法?
只是为了向您展示我的观点,这里是代码:
> InputClass
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class InputClass extends JPanel implements ActionListener{
private JTextField inputName;
private JButton inputButton;
public InputClass() {
setLayout(new FlowLayout());
inputName=new JTextField(15);
inputButton=new JButton("INPUT");
inputButton.addActionListener(this);
add(inputName);
add(inputButton);
}
@Override
public void actionPerformed(ActionEvent event) {
// How do I change/assign a text to the PreviewClass from here?
}
}
> PreviewClass
import javax.swing.*;
import java.awt.*;
public class PreviewClass extends JPanel{
private JTextField namePreview;
public PreviewClass() {
setLayout(new FlowLayout());
namePreview=new JTextField(15);
namePreview.setEditable(false);
add(namePreview);
}
}
> MainClass
import javax.swing.*;
import java.awt.*;
public class MainClass extends JFrame{
private static final int FRAME_WIDTH=250;
private static final int FRAME_HEIGHT=150;
private static final int FRAME_X_ORIGIN=400;
private static final int FRAME_Y_ORIGIN=300;
private InputClass inputPanel;
private PreviewClass previewPanel;
private JTabbedPane tabbedPane;
private Container contentPane;
public MainClass() {
contentPane=getContentPane();
contentPane.setLayout(new BorderLayout());
setTitle("How to Assign Value from Another Class");
setSize(FRAME_WIDTH, FRAME_HEIGHT);
setLocation(FRAME_X_ORIGIN, FRAME_Y_ORIGIN);
inputPanel=new InputClass();
previewPanel=new PreviewClass();
tabbedPane=new JTabbedPane();
tabbedPane.add("Input Name", inputPanel);
tabbedPane.add("Preview Name", previewPanel);
contentPane.add(tabbedPane, BorderLayout.CENTER);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
MainClass frame=new MainClass();
frame.setVisible(true);
}
}
解决方法:
你有许多可能的解决方案,都有利有弊.
如果我遇到这样的问题,我很想创建一个界面来描述可以更改的内容,以及当界面的内部状态发生变化时甚至可能提供事件通知.
然后,我将创建此接口的实例并将其传递给每个类.那些需要来自它的值的类将读取它们所需的值,如果可用,还会附加某种更改/属性侦听器,以便它们可以监视对接口的更改.
需要对界面进行更改的那些类将根据需要进行更改.
随着它的改变,界面将触发更新,让任何正在倾听的人都知道已经进行了更改.
通过这种方式,您可以将每个类分离,并减少其他类的不必要的暴露.
这是MVC范例中的“模型”并描述了observer pattern
内容总结
以上是互联网集市为您收集整理的java – 如何从另一个类更改或分配值到私有变量JTextField?全部内容,希望文章能够帮你解决java – 如何从另一个类更改或分配值到私有变量JTextField?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。