코드를 실행할 때 다음 오류가 발생합니다.오류 : 호환되지 않는 유형 : double을 JTextField로 변환 할 수 없습니다.
error: incompatible types: double cannot be converted to JTextField
JGrasp는 다음과 같은 문제를 지적하고 있습니다.
Programming6_4.Java:143: error: incompatible types: double cannot be converted to JTextField averageScoreTF = (test1 * wght1 + test2 * wght2 + test3 * wght3 + test4 * wght4); ^ 1 error
변환 할 수없는 항목으로 '+'을 (를) 신고하는 이유가 확실하지 않습니다. 도움을 주시면 감사하겠습니다.
import java.awt.*;
import java.awt.event.*;
import java.awt.FlowLayout;
import javax.swing.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Programming6_4 extends JFrame
{
//declares variables
private JLabel blankGrid1L, blankGrid2L, blankGrid3L, scoreL, weightL, testOneL, testTwoL, testThreeL, testFourL, averageScoreL;
private JTextField testOneTF, testTwoTF, testThreeTF, testFourTF, testOnewTF, testTwowTF, testThreewTF, testFourwTF, averageScoreTF;
private JButton calculateScoreB, exitB;
private CalculateButtonHandler cbHandler;
private ExitButtonHandler ebHandler;
//declare window size
private static final int WIDTH = 400;
private static final int HEIGHT = 200;
public Programming6_4()
{
//name labels
blankGrid1L = new JLabel ("", SwingConstants.CENTER);
blankGrid2L = new JLabel ("", SwingConstants.CENTER);
blankGrid3L = new JLabel ("", SwingConstants.CENTER);
scoreL = new JLabel ("Score", SwingConstants.CENTER);
weightL = new JLabel ("Weight", SwingConstants.CENTER);
testOneL = new JLabel ("Test One Score: ", SwingConstants.CENTER);
testTwoL = new JLabel ("Test Two Score: ", SwingConstants.CENTER);
testThreeL = new JLabel ("Test Three Score: ", SwingConstants.CENTER);
testFourL = new JLabel ("Test Four Score: ", SwingConstants.CENTER);
averageScoreL = new JLabel ("Average Weighted Test Score: ", SwingConstants.CENTER);
//create text fields 10 characters - Test Scores
testOneTF = new JTextField(10);
testTwoTF = new JTextField(10);
testThreeTF = new JTextField(10);
testFourTF = new JTextField(10);
//create text fields 10 charaters - Weights
testOnewTF = new JTextField(10);
testTwowTF = new JTextField(10);
testThreewTF = new JTextField(10);
testFourwTF = new JTextField(10);
averageScoreTF = new JTextField(10);
//create buttons and handler
calculateScoreB = new JButton ("Calculate");
cbHandler = new CalculateButtonHandler();
calculateScoreB.addActionListener(cbHandler);
exitB = new JButton ("Exit");
ebHandler = new ExitButtonHandler();
exitB.addActionListener(ebHandler);
//set grid size
Container pane = getContentPane();
pane.setLayout(new GridLayout (7, 3));
//add elements to grid spaced by line
pane.add (blankGrid1L);
pane.add (scoreL);
pane.add (weightL);
pane.add (testOneL);
pane.add (testOneTF);
pane.add (testOnewTF);
pane.add (testTwoL);
pane.add (testTwoTF);
pane.add (testTwowTF);
pane.add (testThreeL);
pane.add (testThreeTF);
pane.add (testThreewTF);
pane.add (testFourL);
pane.add (testFourTF);
pane.add (testFourwTF);
pane.add (averageScoreL);
pane.add (averageScoreTF);
pane.add (blankGrid2L);
pane.add (calculateScoreB);
pane.add (blankGrid3L);
pane.add (exitB);
//set window title, window, and display
setTitle ("Weighted Test Average Calculation");
setSize (WIDTH, HEIGHT);
setVisible (true);
setDefaultCloseOperation (EXIT_ON_CLOSE);
//setLayout (new Programming6_4());
}
//activates ActionListener
private class CalculateButtonHandler implements ActionListener
//Main calculation program
{
public void actionPerformed (ActionEvent e) //public static void main (String[] args)
{
//declare varibles in
double test1, test2, test3, test4, wght1, wght2, wght3, wght4, avgscore /*avg1, avg2, avg3, avg4*/;
//takes text entered by user and converts from string to decimal
test1 = Double.parseDouble(testOneTF.getText());
wght1 = Double.parseDouble(testOnewTF.getText());
test2 = Double.parseDouble(testTwoTF.getText());
wght2 = Double.parseDouble(testTwowTF.getText());
test3 = Double.parseDouble(testThreeTF.getText());
wght3 = Double.parseDouble(testThreewTF.getText());
test4 = Double.parseDouble(testFourTF.getText());
wght4 = Double.parseDouble(testFourwTF.getText());
//calculations needed to get weighted average
//avg1 = test1 * wght1;
//avg2 = test2 * wght2;
//avg3 = test3 * wght3;
//avg4 = test4 * wght4;
//avgscore = avg1 + avg2 + avg3 + avg4;
averageScoreTF = (test1 * wght1 + test2 * wght2 + test3 * wght3 + test4 * wght4);
averageScoreTF.setText("" + avgscore);
}
}
private class ExitButtonHandler implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
System.exit(0);
}
}
public static void maine (String[]args)
{
Programming6_4 testObject = new Programming6_4();
}
}
그건 그렇고, 그것을 찾으려고 몇 시간 봤어. 간단한 타이핑 오류, 나는 그것을 잡았 음에 틀림 없다. 나는 이것에 아주 새롭다, 6 주 새로운. 감사!!! –