簡體   English   中英

JLabel.setText()方法

[英]JLabel.setText() method

所以我正在編寫一個程序來解決二次方程式,並且在制作2個JLabel(以前為空)顯示答案時,一切都有效(當用戶單擊JButton時會發生這種情況)

這是整個程序,因為我不知道錯誤在哪里。

import java.awt.event.*;

import javax.swing.*;


public class Third implements ActionListener {

    //--------------
    //Data Members
    //--------------
/**
 * Top level window 
 */
JFrame top;
/**
 * Changed into a string by ConvertToDouble(string str);
 */
double a, b, c; 
double answer1,answer2;
JTextField inputA, inputB, inputC;  
JLabel describeA, describeB, describeC, print1, print2;
JButton submit;
String aa, bb, cc;
String result1, result2;
String strA, strB, strC;




    public Third(){

    top = new JFrame("Ned's quadratic equation solver");
    top.setVisible(true);
    top.setLayout(null);
    top.setBounds(50,50,250,250);


    inputA = new JTextField(12);    
    inputA.setBounds(100,30,200,25);
    inputB = new JTextField(12);    
    inputB.setBounds(100,105,200,25);
    inputC = new JTextField(12);    
    inputC.setBounds(100,185,200,25);

    describeA = new JLabel("Enter A here:");
    describeA.setBounds(10,30,200,25);
    describeB = new JLabel("Enter B here:");
    describeB.setBounds(10,105,200,25);
    describeC = new JLabel("Enter C here:");
    describeC.setBounds(10,185,200,25);

    print1 = new JLabel();
    print1.setBounds(15,290,1000,10);
    print2 = new JLabel();
    print2.setBounds(15,310,1000,10);

    submit = new JButton ("WHAT DOES X = ???");
    submit.setBounds(50,230,150,25);
    submit.addActionListener(this);



    top.add(inputA);
    top.add(inputB);
    top.add(inputC);

    top.add(describeA);
    top.add(describeB);
    top.add(describeC);

    top.add(submit);
    top.doLayout();
    }


    public void actionPerformed(ActionEvent event) {

        aa = inputA.getText();
        bb = inputB.getText();
        cc = inputC.getText();

        a = convertToDouble(aa);
        b = convertToDouble(bb);
        c = convertToDouble(cc);

        makeAns(a,b,c);

     /*
      * DEBUG CODE
      *
      * System.out.println(a);
      * System.out.println(b);
      * System.out.println(c);
      * System.out.println(answer1);
      * System.out.println(answer2);
      */
        result1 = "x = " + answer1;
        result2 = "x = " + answer2;

            print1.setText(result1);
            print2.setText(result2);

            //System.out.println(result1);

            top.doLayout();


    }



private void makeAns(double x,double y,double z){   

        answer1 =(-y + Math.sqrt (y*y-4*x*z))/(2*x);
        answer2 =(-y - Math.sqrt (y*y-4*x*z))/(2*x);

    }

private double convertToDouble (String str) {

    Double dubb = new Double(str);
    return  dubb.doubleValue(); 
}


}

在顯示任何內容之前,您必須首先向GUI添加一個組件。 在哪里可以將print1和print2 JLabel添加到GUI或任何容器中?

此外,您將需要使用布局管理器而不是空布局和絕對定位來使GUI編碼更容易。

此外,您還需要添加所有組件在JFrame上調用setVisible(true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM