我有一个基本问题。我真的不擅长编程。我试图在我的答案字段中显示小数点后 2 位的答案。我有我的 JTextFields 和我的 JRadioBtn 集。当答案针对我的面积或周长时,会有很多小数位。我只需要它来四舍五入小数点后 2 位。这是我到目前为止的代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import static java.lang.Math.*;
public class Triangle extends JFrame
{
private GridBagLayout layout = new GridBagLayout();
private GridBagConstraints constraints = new GridBagConstraints();
JTextField firstNumberTxt, secondNumberTxt, thirdNumberTxt, answerTxt;
JRadioButton addBtn, subBtn, multBtn, divBtn;
JButton calculateBtn, exitBtn;
public ExamQuestion2()
{
super( "A Simple Calculator Form." );
firstNumberTxt = new JTextField( 5 );
secondNumberTxt = new JTextField( 5 );
answerTxt = new JTextField( 5 );
addBtn = new JRadioButton( "area", true );
subBtn = new JRadioButton( "perimeter", false );
calculateBtn = new JButton( "cal" +
"calculate" );
exitBtn = new JButton( "exit" );
JLabel firstNumberLbl = new JLabel( "Base: "),
operationLbl = new JLabel( "Operation "),
secondNumberLbl = new JLabel( "Height: "),
answerLbl =new JLabel( "Answer: ");
setLayout( layout );
addComponent( firstNumberLbl, 0, 0, 1, 1, GridBagConstraints.EAST );
addComponent( firstNumberTxt, 0, 1, 1, 1, GridBagConstraints.WEST );
addComponent( operationLbl, 1, 0, 1, 4, GridBagConstraints.CENTER );
addComponent( addBtn, 1, 1, 1, 1, GridBagConstraints.WEST );
addComponent( subBtn, 2, 1, 1, 1, GridBagConstraints.WEST );
addComponent( secondNumberLbl, 5, 0, 1, 1, GridBagConstraints.EAST );
addComponent( secondNumberTxt, 5, 1, 1, 1, GridBagConstraints.WEST );
addComponent( answerLbl, 6, 0, 1, 1, GridBagConstraints.EAST );
addComponent( answerTxt, 6, 1, 1, 1, GridBagConstraints.WEST );
addComponent( calculateBtn, 7, 0, 1, 1, GridBagConstraints.EAST );
addComponent( exitBtn, 7, 1, 1, 1, GridBagConstraints.WEST );
calculateBtn.addActionListener( new Calculator() );
exitBtn.addActionListener( new Exiter() );
}
private void addComponent( Component component, int row, int column, int width, int height, int anch )
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
constraints.anchor = anch;
constraints.weighty = 5;
add( component );
layout.setConstraints( component, constraints );
}
private class Calculator implements ActionListener
{
public void actionPerformed( ActionEvent event )
{
String firstString, secondString;
int choice;
int firstNumber, secondNumber;
firstString = firstNumberTxt.getText();
secondString = secondNumberTxt.getText();
if( firstString.length() < 1 || secondString.length() < 1)
{
answerTxt.setText( " INVALID" );
return;
}
firstNumber = Integer.parseInt( firstString );
secondNumber = Integer.parseInt( secondString );
if( addBtn.isSelected() )
{
choice = 0;
subBtn.setSelected( false );
}
if( addBtn.isSelected() ) choice = 0;
else if( subBtn.isSelected() ) choice = 1;
else if( multBtn.isSelected() ) choice = 2;
else choice = 3;
switch ( choice )
{
case 0: answerTxt.setText( ( (firstNumber * secondNumber) / 2 ) + "" ); break;
case 1: answerTxt.setText( ( firstNumber + secondNumber + sqrt( (firstNumber * firstNumber) +
(secondNumber * secondNumber))) + "" ); break;
default: if ( secondNumber != 0 )
{
answerTxt.setText( ( firstNumber / secondNumber ) + "" ); break;
}
else answerTxt.setText( " INVALID " ); break;
}
}
}
public static void main(String[] args)
{
Triangle MyCalculator= new Triangle();
MyCalculator.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
MyCalculator.setSize( 300, 300 );
MyCalculator.setLocationRelativeTo(null);
MyCalculator.setVisible( true );
}
private class Exiter implements ActionListener
{
public void actionPerformed( ActionEvent event)
{
System.exit(0);
}
}
}
我已经查看并尝试了一些我在网上找到的东西,但似乎无法让任何东西正常工作。有人帮忙吗?