【问题标题】:How to fix 'Cannot resolve method setText(java.lang.String)' error?如何修复“无法解析方法 setText(java.lang.String)”错误?
【发布时间】:2019-08-09 15:01:22
【问题描述】:

我是 Java 和编码的初学者。不知道是不是因为我忘记了代码中的某些内容或代码中的某些内容不正确而出现此问题。

我已经尝试过查看 Stack Overflow 上与我的问题相似的所有问题,但没有一个对我有帮助。我一直在反复试验,但仍然无法修复它。

import javax.swing.JFrame;
import javax.swing.JLabel;

public class JLabel {

    public static void main(String args[]) {
        JFrame myFrame = new JFrame();
        String myTitle = "Blank Frame";
        JLabel label1 = new JLabel("Test");
     `````
        label1.setText("Test Text");
     `````
        myFrame.setTitle(myTitle);
        myFrame.setTitle(900,600);
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myFrame.setVisible(true);
    }
}

在 'label1.setText("Test Text");' 是问题所在。我对这段代码的目标是创建一个包含一些文本的窗口。希望修复很简单,不像许多代码那么复杂。

【问题讨论】:

  • 我无法重现您在本地记录的问题。但是,我的无法在 myFrame.setTitle(900,600); 上编译

标签: java swing jframe jlabel settext


【解决方案1】:

您需要重命名您的课程,因为这是您正在使用的现有课程。创建 LJabel 对象现在将创建对象的实例,而不是 java.swing 等效项。

您没有将标签添加到框架中。

myFrame.add(label1);

当我相信您打算拨打 setSize() 时,您还拨打了两次 setTitle()。

这段代码对我有用:

public static void main(String[] args) {
    JFrame myFrame = new JFrame();
    String myTitle = "Blank Frame";
    JLabel label1 = new JLabel("Test");
    label1.setText("Test Text");
    myFrame.add(label1);
    myFrame.setTitle(myTitle);
    myFrame.setSize(900,600);
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    myFrame.setVisible(true);
}

【讨论】:

  • 虽然这有所帮助,但它仍然显示相同的“无法解决方法”的事情
【解决方案2】:

删除`````的东西,你就没事了...... 还是这些只是为了举例?

【讨论】:

  • ````` 的内容是提供需要修复的行
  • 提供一个真实的例子,没有编译错误。你说,你是初学者,所以假字符是错误的。删除所有行,并一一添加。什么时候出现错误?
【解决方案3】:

此消息告诉您方法 setText 未在您定义的类 JLabel 中定义,这与 Swing 包中的 JLabel 类不等效。 例如,将您自己定义的类 JLabel 重命名为 JLabelTest。 另外,去掉myFrame.setTitle(900,600);这一行,setTitle的定义不允许这些参数,换成myFrame.setSize(900,600); 你的完整代码应该是:

import javax.swing.JFrame;
import javax.swing.JLabel;

public class JLabelTest {

    public static void main(String args[]) {
        JFrame myFrame = new JFrame();
        String myTitle = "Blank Frame";
        JLabel label1 = new JLabel("Test");

        label1.setText("Test Text");

        myFrame.setTitle(myTitle);
        myFrame.setSize(900,600);
        myFrame.getContentPane().add(label1); // to display the label
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myFrame.setVisible(true);
    }
}

只是个人建议;尝试非常仔细地阅读您的教程并逐步了解 Swing 的工作原理。

希望这会对你有所帮助。

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多