【发布时间】:2021-01-11 21:06:41
【问题描述】:
为了整理我的(非常基本的)UI 代码,我将按钮和文本字段拆分为两个单独的类,其中一个主要用于创建框架并运行。该按钮需要在单击时影响文本字段的内容,所以我使用了mouseEvent。但是,我不能调用我的文本字段的方法,因为文本字段对象存储在 main 中,所以没有对象可以使用方法。所有方法都是公共的,所有属性都是私有的。感谢您提供所有帮助。
我已尝试将对象 public statiic 设为无济于事,我不确定我在这里是否缺少明显的东西。
Fpor 上下文,mouseEvent 需要从 gui1 类中称为 tf 的文本字段对象调用方法 rename(String)
编辑:
(主要)
public interface gui1{
public static void main(String[] args) {
textfieldobj tf = new textfieldobj("You should press button 1",100,100, 150,20);
buttonObject b = new buttonObject("new button!");
(在 buttonObject 类中)
public class buttonObject extends JButton implements{
JButton b;
public buttonObject(String text){
JButton b=new JButton(text);
b.setBounds(100,100,60,60);
b.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
tf.setText("You Did It");//problem area
b.setEnabled(false);
(在文本字段类中)
public void setText(String newtext) {
text = newtext;
super.setText(newtext);
}
【问题讨论】:
-
请提供一些代码示例。
-
是的对不起我忘了
-
也许向
buttonObject添加一个参数,并传递您希望它为其设置文本的文本字段?然后将其称为buttonObject b = new buttonObject("new button!", tf) -
运行,但按钮和文本字段没有对话并且非常小。我开始认为这从一开始就是徒劳的努力,我应该像理智的人一样把它放在一个班级里吗?
-
只是对标准改进的建议 - 类和接口名称 - 以及构造函数 - 应该以大写字母开头(“class ButtonObject”,“TextFieldObj”),而方法和变量以小写字母开头("setText", "字符串文本")
标签: java user-interface methods method-call