2017-04-25 73 views
0

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

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

也许一个整数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); 
} 

全码

MAIN

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); 
    } 




} 
+0

看看String.valueOf(); –

回答