я снова борюсь, выполняя программу в java, которая преобразует температуру от Цельсия в fahrenhiet, но это должно быть сделано в графическом интерфейсе, чтобы пользователь мог ввести число для цели и щелкнуть по botton, чтобы преобразовать его. Ив моделировал это из примера в моей книге, однако в книге он показывает, что он работает без статического main(), но моя IDE дала мне ошибку, говоря, что это было необходимо, поэтому ive добавила static main() и ive попробовал вызвать tempwindow(), чтобы увидеть, будет ли это работать, но все равно ничего, и даже если я прокомментирую вызов, он не даст мне ошибку, но ничего не произойдет. im hopping кто-то может помочь показать мне, что я делаю неправильно и как я должен идти об этом.
import javax.swing.JOptionPane;
import javax.swing.*;
import java.awt.event.*;
public class tempcon extends JFrame
{
private JPanel panel;
private JLabel messageLabel;
private JTextField tempC;
// private JRadioButton tempF;
// private ButtonGroup radioButtonGroup;
private JButton calcButton;
private final int WINDOW_WIDTH = 400;
private final int WINDOW_HEIGHT = 100;
public tempwindow()
{
setTitle("Temurture convertion");
setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buildPanel();
add(panel);
setVisible(true);
}
private void buildPanel()
{
messageLabel = new JLabel("enter tempurture in celsius");
tempC = new JTextField(10);
calcButton = new JButton("convert");
calcButton.addActionListener(new CalcButtonListener());
panel = new JPanel();
panel.add(messageLabel);
panel.add(tempC);
panel.add(calcButton);
}
private class CalcButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String input;
double temp;
input = tempC.getText();
temp = Double.parseDouble(input) * 1.8 + 32;
JOptionPane.showMessageDialog(null, "that is " + temp + "degrees fehrenhiet");
}
}
public static void main(String[] args)
{
tempwindow();
}
}
public static void main(String[] args)
{
tempcon myTempWindowInstance = new tempcon();
myTempWindowInstance.tempwindow();
}
Вы никогда не инициализируете tempcon. Ваш конструктор должен иметь то же имя, что и класс, поэтому вместо этого рекомендую следующие изменения:
Замените public tempwindow()
public tempcon()
чтобы исправить конструктор.
public tempcon()
{
setTitle("Temurture convertion");
setSize(WINDOW_WIDTH, WINDOW_HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
buildPanel();
add(panel);
setVisible(true);
}
создайте экземпляр tempcon с помощью new
, который вызывает конструктор:
public static void main(String[] args)
{
tempcon myTempWindowInstance = new tempcon();
}
Вы делаете несколько ошибок:
Класс:
public class TempCon extends JFrame
{
// Variable declarations
public TempCon() // Constructor should match the Class name
{
}
}
Основной класс:
public static void main(String[] args)
{
TempCon converter = new TempCon();
}
пожалуйста, напишите возврат типа вашей функции.
public void tempwindow()
создать объект класса и метод вызова.
public static void main(String[] args)
{
tempcon t=new tempcon();
t.tempwindow();
}
и изучать Java-объектное Java-ориентированное программирование.