【问题标题】:Trouble With Java GUI ErrorJava GUI 错误问题
【发布时间】:2013-06-26 00:48:50
【问题描述】:

这个程序应该将用户输入的英里转换为使用GUI界面的公里。程序当前无法编译。

aaaaa.java:10:错误:方法声明无效;需要返回类型 公共计算面板(){ ^ 1 个错误

无论我在哪里寻找此类程序的示例,我都看不到该方法的返回类型。有任何想法吗?谢谢

这是程序:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class aaaaa extends JFrame {
private JLabel messageLabel= new JLabel("Enter distance in miles");
private JTextField milesTextField = new JTextField(10);;
private JButton calcButton = new JButton("Calculate"); 

public CalcPanel() {
    JPanel panel = new JPanel();
    panel.add(messageLabel);
    panel.add(milesTextField);
    panel.add(calcButton);

    calcButton.addActionListener(new CalcButtonListener());
}

public static void main(String[] args) {
        JFrame frame = new CalcPanel();
        frame.setTitle("M to Km Converter");
        frame.setLocationRelativeTo(null);
        frame.setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
}

class CalcButtonListener implements ActionListener {        public void actionPerformed(ActionEvent e) {
        String input = milesTextField.getText();
        double kilometers = Double.parseDouble(input) * 1.6023;
        JOptionPane.showMessageDialog(null, input + " miles is " + kilometers + " kilometers.");
    }
}
}

所以这个问题解决了,但这是另一个问题。面板弹出打开,但我的 messageLabel milesTextField calcButton 没有显示出来。

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class Aaaa extends JFrame {
    private JPanel panel;
    private JLabel messageLabel= new JLabel("Enter distance in miles");
    private JTextField milesTextField = new JTextField(10);;
    private JButton calcButton = new JButton("Calculate"); 

    public Aaaa() {
        JPanel panel = new JPanel();
        panel.add(messageLabel);
        panel.add(milesTextField);
        panel.add(calcButton);
        setVisible(true);
        calcButton.addActionListener(new CalcButtonListener());
    }

    public static void main(String[] args) {
            JFrame frame = new Aaaa();
            frame.setTitle("M to Km Converter");
            frame.setLocationRelativeTo(null);
            frame.setSize(300, 150);
    }

    class CalcButtonListener implements ActionListener {        public void actionPerformed(ActionEvent e) {
            String input = milesTextField.getText();
            double kilometers = Double.parseDouble(input) * 1.6023;
            JOptionPane.showMessageDialog(null, input + " miles is " + kilometers + " kilometers.");
        }
    }
}

【问题讨论】:

  • 你为什么要更改班级名称?很有可能,如果这个 一个任务,并且您可能会因此而遇到麻烦,那么您可能会从代码正文中被找到...
  • 课程必须以“Aaaauuuggghhhh 城堡”命名。这就是精神纯洁者可能找到圣杯的地方。
  • 所以我继续并回滚了这个,因为它会使你现有的答案看起来非常奇怪。如果您还有其他问题要问,请随时提出;但是,我强烈建议您在询问之前自行对此进行一些调查。

标签: java swing exception


【解决方案1】:

您正在尝试创建构造函数,但构造函数的名称与类的名称不匹配。

public CalcPanel改为public aaaaaa

【讨论】:

  • 这很好用。知道这很简单,但是我有一个新错误... aaaaaa.java:24: error: non-static method setVisible(boolean) cannot be referenced from a static context setVisible(true); ^ 1 个错误
  • 这是一个实现问题 - 您正试图在 main 中运行继承的非静态方法。您必须将其声明移动到实际类中,而不是 main
【解决方案2】:

似乎是拼写错误,类名和构造函数名不匹配。你的类名是 aaaaa 而你的构造函数名是 CalcPanel。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多