【问题标题】:Need a method to show results in JTextField需要一种在 JTextField 中显示结果的方法
【发布时间】:2017-04-25 10:59:51
【问题描述】:

程序说明:该程序的目的是允许用户对整数和分数进行排序 降序或升序。使用一系列 4 个单选按钮,用户可以选择数字类型(整数或分数) 要排序以及数字类型的排序方式(升序或降序)。用户选择选项后,将 他们在 JTextField 中的数字或分数,然后他们可以简单地点击“执行排序”按钮和数字的排序版本 将出现在结果 JTextField 中。

问题: 在 P3GUI.JAVA 中的 ActionListner 中,resultField.setText(( ai.inOrder(ai.root))); 用于显示 resultField JTextField 中整数的排序版本。但是resultField.setText(( ai.inOrder(ai.root))); 导致"incompatiable types: int cannot be converted to String."

也许需要一个 Integer toString 方法??不确定

非常感谢任何有关进行此运行的建议。

class getItListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        String text;

        /*text = entryField.getText().trim(). replaceAll(" ","");
       String textArray[] = text.split(" ");*/
        text = getAmtValue();
        String textArray[] = text.split(" ");

        if (ascending.isSelected() && integer.isSelected()) { for integers
            BST ai = new BST(new Integer(textArray[0]));
            for (int i = 1; i < textArray.length; i++) {
                ai.insert(ai.root, new Integer(textArray[i]));
            }
            resultField.setText((int ai.inOrder(ai.root)));
        } else if (descending.isSelected() && integer.isSelected()) {
            //Do Something
        } else if (ascending.isSelected() && fraction.isSelected()) { 
            // Do Something
        } else if (descending.isSelected() && fraction.isSelected()) { 
          // Do Something
        } else {
            JOptionPane.showMessageDialog(popup, "Please entvalid amount.");
        }
    }
}

方法被调用:

public int inOrder(Node node) {
    if (node != null) {
        inOrder(node.left);

        inOrder(node.right);
    }
    return ((Integer) node.element);
} 




/**
 *
 * @param node
 * @return 
 */
public int descOrder(Node node) {
    if (node != null) {
        descOrder(node.right);

        descOrder(node.left);
    }
   return ((Integer) node.element);
}

完整代码

主要

package p3gui;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.*;
import javax.swing.ButtonGroup;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;

/**
 *
 * @author Mike
 */
public class P3GUI extends JFrame {

    JFrame f = new JFrame("Binary Search Tree Sort");// Title
/////////////////////////////////////////////Set up of fields, labels and buttons//////////////////////////////////////////////
    private final JButton evaluate;
    private final JLabel textfieldLabel;
    private final JTextField entryField;
    private final JLabel resutfieldlabel;
    private final JLabel radioLabel1;
    private final JLabel radioLabel2;
    private final JTextField resultField;
    private final JRadioButton ascending;
    private final JRadioButton descending;
    private final JRadioButton integer;
    private final JRadioButton fraction;
    private final ButtonGroup radioButtons = new ButtonGroup();//create radio buttons group
    private final ButtonGroup radioButtons2 = new ButtonGroup();//create radio buttons group
    private final JOptionPane popup = new JOptionPane();

/////////////////////////////////////////////Display///////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////Start Panel///////////////////////////////////////////////////////////////////////
    P3GUI() {

        f.setSize(425, 375);
        f.setLayout(null);//using no layout managers  
        f.setVisible(true);//making the frame visible  //window size
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

/////////////////////////////////////////////JRadioButton label////////////////////////////////////////////////////////////
        radioLabel2 = new JLabel(" Numeric Type ");
        f.add(radioLabel2);
        radioLabel2.setBounds(225, 275, 100, 15);

/////////////////////////////////////////////JRadioButton Ascending///////////////////////////////
        integer = new JRadioButton(" Integer ");
        radioButtons.add(integer);
        f.add(integer);
        integer.setBounds(225, 295, 160, 15);

/////////////////////////////////////////////JRadioButton Descending///////////////////////////////
        fraction = new JRadioButton(" Fraction ");
        radioButtons.add(fraction);
        f.add(fraction);
        fraction.setBounds(225, 315, 160, 15);

/////////////////////////////////////////////JRadioButton label////////////////////////////////////////////////////////////
        radioLabel1 = new JLabel(" Sorted Order ");
        f.add(radioLabel1);
        radioLabel1.setBounds(10, 275, 100, 15);

/////////////////////////////////////////////JRadioButton Ascending///////////////////////////////
        ascending = new JRadioButton(" Ascending ");
        radioButtons2.add(ascending);
        f.add(ascending);
        ascending.setBounds(10, 295, 160, 15);

/////////////////////////////////////////////JRadioButton Descending///////////////////////////////
        descending = new JRadioButton(" Descending ");
        radioButtons2.add(descending);
        f.add(descending);
        descending.setBounds(10, 315, 160, 15);

/////////////////////////////////////////////Text Field Label and Field////////////////////////////////////////////////////////
        textfieldLabel = new JLabel(" Original List ");
        f.add(textfieldLabel);
        textfieldLabel.setBounds(42, 10, 160, 25);

/////////////////////////////////////////////Entry Field Label and Field////////////////////////////////////////////////////////
        entryField = new JTextField("");
        //entryField.addActionListener(this);//ActionListener
        f.add(entryField);
        entryField.setBounds(118, 10, 245, 25);

/////////////////////////////////////////////Add Evaluate Button///////////////////////////////////////////////////////////////
        evaluate = new JButton(" Perform Sort ");//creating instance of JButton  
        f.add(evaluate);
        evaluate.setBounds(137, 180, 130, 30);

/////////////////////////////////////////////Result label and Field////////////////////////////////////////////////////////////
        resutfieldlabel = new JLabel(" Sorted List ");
        f.add(resutfieldlabel);
        resutfieldlabel.setBounds(52, 100, 100, 25);

        resultField = new JTextField("");
        //resultField.addActionListener(this);//ActionListener
        resultField.setEditable(false);
        f.add(resultField);
        resultField.setBounds(125, 100, 220, 25);

        evaluate.addActionListener(new getItListener());

    }//END of P3GUI

    class getItListener implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent e) {
            String text;

            /*text = entryField.getText().trim(). replaceAll(" ","");
           String textArray[] = text.split(" ");*/
            text = getAmtValue();
            String textArray[] = text.split(" ");

            if (ascending.isSelected() && integer.isSelected()) { //ascending for integers
                BST ai = new BST(new Integer(textArray[0]));
                for (int i = 1; i < textArray.length; i++) {
                    ai.insert(ai.root, new Integer(textArray[i]));
                }
                resultField.setText((int ai.inOrder(ai.root)));
            } else if (descending.isSelected() && integer.isSelected()) { // descending for integer
                //Do Something
            } else if (ascending.isSelected() && fraction.isSelected()) { //ascending for fractions
                // Do Something
            } else if (descending.isSelected() && fraction.isSelected()) { // descending for fractions
              // Do Something
            } else {
                JOptionPane.showMessageDialog(popup, "Please entvalid 
 amount.");
            }
        }
    }

    //returns value in text field
    public String getAmtValue() {
        try {
            return (entryField.getText().trim().replaceAll(" ", ""));
        } catch (NumberFormatException e) {
            System.out.println("This is not a number");
            eraseTextField();
            return "";
        }
    }

    //clears text field
    public void eraseTextField() {
        entryField.setText("");
        entryField.requestFocus();
    }

    public static void main(String[] args) {
        P3GUI p3GUI;
        p3GUI = new P3GUI();

    }

}

BST.JAVA

package p3gui;


class Node {

public Object element;
public Node left;
public Node right;

// CONSTRUCTORS 
public Node(Object theElement) {
    this(theElement, null, null);
}

public Node(Object theElement, Node lLink, Node rLink) {
    element = theElement;
    this.left = lLink;
    this.right = rLink;
}
}

public class BST {

    public Node root;

    public BST(Object x) { // ONLY CONSTRUCTOR//
        root = new Node(x);
    }


    public Node insert(Node node, Integer x) {
        if (node == null) {
            return node = new Node(x);
        }
        if (x < (Integer) node.element) {
            node.left = insert(node.left, x);
        } else {
            node.right = insert(node.right, x);
        }
        return node;
    }


    /**
     *
     * @param node
     * @return 
     */
    public int inOrder(Node node) {
        if (node != null) {
            inOrder(node.left);

            inOrder(node.right);
        }
        return ((Integer) node.element);
    } 




    /**
     *
     * @param node
     * @return 
     */
    public int descOrder(Node node) {
        if (node != null) {
            descOrder(node.right);

            descOrder(node.left);
        }
       return ((Integer) node.element);
    }




}

【问题讨论】:

  • 看String.valueOf();

标签: java string type-conversion


【解决方案1】:

可以尝试使用NumberFormat将int解析为String,例如:

DecimalFormat myFormatter = new DecimalFormat("###,###");
String output = myFormatter.format(value);

###,### 表示您将在数字格式中使用的模式。 更多信息在这里:https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多