- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我一直在谷歌上搜索这个问题的解决方案,我可能找到了它,但我对编程还很陌生,所以我的理解水平充其量只是平庸。
我在两个 JTextField
对象中进行计算,将输入的值相乘并将第三个文本字段的文本设置为答案。当进行小数计算时,我希望它只显示两位小数。
我添加了整个代码而不是摘要。
代码如下:
public class Decorator implements ActionListener
{
JFrame fDecorator; // Declare Decorator frame
JLabel lSize, lType, lTotal, lPrice, lx, lEquals; // Declare Labels
JTextField tLength, tWidth, tSize, tTotal; // Declare JTextFields
JComboBox<String> cbFlooring; //Declare JComboBox
JButton bCalculate1, bCalculate2, bHelp; // Declare JButtons
static double priceTotal, floorPrice, floorSize; // Declare double variables
Decorator()
{
String[] type_floor = new String[] // Create an array called Type_Floor
{" Select ","Wood £0.24", "Ceramic £0.37", "Stone £0.86", "Lino £1.24", "Marble £1.76",
"Laminate £2.10", "Bamboo £2.34", "Carpet £3.78"}; // Add array names for JComboBox
fDecorator = new JFrame("Flooring Decorator"); // Add the Frame
fDecorator.setResizable(false); // Disallow user resizing of frame
fDecorator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lSize = new JLabel("Input Size of your room (Meters): "); // Add size of floor Label
lType = new JLabel("Type of flooring: "); // Add type of flooring Label
lTotal = new JLabel("Total Price = "); // Add Total price of flooring Label
lx = new JLabel("x"); // Add x Label
lEquals = new JLabel("="); // Add equals Label
lPrice = new JLabel ("Price of floor per square Meter"); // Adds Price Label
bCalculate1 = new JButton("Calculate"); // Add calculate Button
bCalculate2 = new JButton("Calculate"); // Add calculate Button
bHelp = new JButton("Help"); // Add Help Button
tLength = new JTextField(5); // Add user editable Text Field
tWidth = new JTextField(5); // Add second user editable Text Field
tSize = new JTextField(5); // Add total size of room Text Field
tTotal = new JTextField(5); // Add total price Text Field
tTotal.setEditable(false); // Disallow editing of tTotal
tSize.setEditable(false); // Disallow editing of tSize
cbFlooring = new JComboBox<>(type_floor); // Add ComboBox, and type cast Array
fDecorator.setLayout(new FlowLayout()); // Set the layout of Decorator to FlowLayout
fDecorator.add(lSize); // Add Size Label
fDecorator.add(tLength); // Add Entry1 TextField
fDecorator.add(lx); // Add x Label
fDecorator.add(tWidth); // Add Entry2 TextField
fDecorator.add(lEquals); // Add Equals Label
fDecorator.add(tSize); // Add Size TextField
fDecorator.add(bCalculate1); // Add Calculator1 Button
fDecorator.add(lPrice); // Add Price Label
fDecorator.add(cbFlooring); // Add Flooring ComboBox
fDecorator.add(bCalculate2); // Add Calculator2 Button
fDecorator.add(lTotal); // Add Total Label
fDecorator.add(tTotal); // Add Total TextField
fDecorator.add(bHelp); // Add Help Button
bCalculate1.addActionListener(this); // Adds an action listener to Calculate button
bCalculate2.addActionListener(this); // Adds an action listener to Calculate2 button
bHelp.addActionListener(this); // Adds an action listener to Help button
cbFlooring.addActionListener(this); // Adds action listener to ComboBox
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
fDecorator.setLocation(dim.width/3-fDecorator.getSize().width/3, dim.height/3-fDecorator.getSize().height/3);
fDecorator.setSize(420, 130); // Set frame size too 400 by 200
fDecorator.setVisible(true); // Set frame to visible
}
@Override
public void actionPerformed(ActionEvent e) // Action Listener
{
try // Handle exceptions with code inside this block
{
JComboBox<String> selectionBox = (JComboBox<String>) e.getSource(); // Declare parameterised ComboBox selectionBox
String selectedFloor = (String) selectionBox.getSelectedItem(); // Declare selectedFloor as string inside ComboBox
if(selectedFloor.equals("Wood £0.24")) // If selected Equals Wood
floorPrice = 0.24; // Assign floorPrice value 0.24
else if(selectedFloor.equals("Ceramic £0.37")) // If selected Equals Ceramic
floorPrice = 0.37; // Assign floorPrice value 0.37
else if(selectedFloor.equals("Stone £0.86")) // If selected Equals Stone
floorPrice = 0.86; // Assign floorPrice value 0.86
else if(selectedFloor.equals("Lino £1.24")) // If selected Equals Lino
floorPrice = 1.24; // Assign floorPrice value 1.24
else if(selectedFloor.equals("Marble £1.76")) // If selected Equals Marble
floorPrice = 1.76; // Assign floorPrice value 1.76
else if(selectedFloor.equals("Laminate £2.10")) // If selected Equals Laminate
floorPrice = 2.10; // Assign floorPrice value 2.10
else if(selectedFloor.equals("Bamboo £2.34")) // If selected Equals Bamboo
floorPrice = 2.34; // Assign floorPrice value 2.34
else if(selectedFloor.equals("Carpet £3.78")) // If selected Equals Carpet
floorPrice = 3.78; // Assign floorPrice value 3.78
}
catch(Exception a) // Handle exception using this
{
// Does nothing if an exception is encountered, prevents program from crashing and handles exception
}
try // Handle exception with code inside this block
{
char[] len1 = tLength.getText().toCharArray(); // Declares a char variable that gets the text from tEntry1
char[] len2 = tWidth.getText().toCharArray(); // Declares a char variable that gets the text from tEntry2
for(int loop1 = 0; loop1 < len1.length; loop1++) // For loop that searches through the TextFields
{
if(len1[loop1] == '-' || len2[loop1] == '-') // If the loop finds a - sign
JOptionPane.showMessageDialog(null,"No Negative numbers please!"); // Displays an error message
}
if (tLength.getText() != null && tWidth.getText() != null) // if TextFields have inputs
{
double length = Double.parseDouble(tLength.getText()); // Gets string from TextField and converts to double
double width = Double.parseDouble(tWidth.getText()); // Gets string from TextField and converts to double
if(e.getSource() == bCalculate1) // When Calculate button is clicked
{
tSize.setText(Double.toString(length * width)); // Times input 1 and 2 to find surface area
}
}
}
catch(Exception ab) // Handle exception using this
{
JOptionPane.showMessageDialog(null,"No Text Please!");// Does nothing if an exception is encountered, prevents program from crashing
}
try // Handle exception with code inside this block
{
if(e.getSource() == bCalculate2) // If Calculate2 button is pressed
{
floorSize = Double.parseDouble(tSize.getText()); // Get text value from tSize and assign value too floorSize
priceTotal = floorPrice * floorSize; // Assign value to priceTotal
tTotal.setText(""+priceTotal); // Set tTotal TextField
}
}
catch(Exception abc) // Handle exceptions using this
{
System.out.println("Exception occured!!!!");// If an exception is encountered, prevents program from crashing and handles exception
}
if(e.getSource() == bHelp)
{
JFrame fHelp = new JFrame("Help Screen"); // Declare JFrame fHelp
JLabel lWelcomeHelp = new JLabel("<html>Welcome to the help screen!<br> This screen will guide you though using my decorator application!<br> Firslty input the length and width into the text fields, then press calculate.<br> This will generate the size of the floor you're going to be decorating.<br>After that select which floor you would like to use,<br>the price for each type of flooring is displayed next to it.<br> After deciding on a floor press the second calculate button to price up your new floor!<html>", SwingConstants.CENTER);
// Declare JLabel WelcomeHelp
fHelp.setLayout(new FlowLayout()); // Set fHelp frame layout as FlowLayout
fHelp.add(lWelcomeHelp); // Add WelcomeHelp JLabel to fHelp frame
fHelp.setSize(600, 250); // Set size of frame
fHelp.setVisible(true); // Make frame visible
}
}
}
最佳答案
DecimalFormat dc = new DecimalFormat("0.00");
String formattedText = dc.format(yourDouble);
yourDouble 是您要格式化的 double 值。
您可以将不同的字符串传递到 DecimalFormat 构造函数中以获得不同的效果。例如 DecimalFormat("###,###,###.00")
会在每 3 位数字处放置一个逗号,其中要格式化的数字在小数点前最多有 9 位数字.
关于java - JTextField 只显示 2 位小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28929105/
我正在编写一个具有以下签名的 Java 方法。 void Logger(Method method, Object[] args); 如果一个方法(例如 ABC() )调用此方法 Logger,它应该
我是 Java 新手。 我的问题是我的 Java 程序找不到我试图用作的图像文件一个 JButton。 (目前这段代码什么也没做,因为我只是得到了想要的外观第一的)。这是我的主课 代码: packag
好的,今天我在接受采访,我已经编写 Java 代码多年了。采访中说“Java 垃圾收集是一个棘手的问题,我有几个 friend 一直在努力弄清楚。你在这方面做得怎么样?”。她是想骗我吗?还是我的一生都
我的 friend 给了我一个谜语让我解开。它是这样的: There are 100 people. Each one of them, in his turn, does the following
如果我将使用 Java 5 代码的应用程序编译成字节码,生成的 .class 文件是否能够在 Java 1.4 下运行? 如果后者可以工作并且我正在尝试在我的 Java 1.4 应用程序中使用 Jav
有关于why Java doesn't support unsigned types的问题以及一些关于处理无符号类型的问题。我做了一些搜索,似乎 Scala 也不支持无符号数据类型。限制是Java和S
我只是想知道在一个 java 版本中生成的字节码是否可以在其他 java 版本上运行 最佳答案 通常,字节码无需修改即可在 较新 版本的 Java 上运行。它不会在旧版本上运行,除非您使用特殊参数 (
我有一个关于在命令提示符下执行 java 程序的基本问题。 在某些机器上我们需要指定 -cp 。 (类路径)同时执行java程序 (test为java文件名与.class文件存在于同一目录下) jav
我已经阅读 StackOverflow 有一段时间了,现在我才鼓起勇气提出问题。我今年 20 岁,目前在我的家乡(罗马尼亚克卢日-纳波卡)就读 IT 大学。足以介绍:D。 基本上,我有一家提供簿记应用
我有 public JSONObject parseXML(String xml) { JSONObject jsonObject = XML.toJSONObject(xml); r
我已经在 Java 中实现了带有动态类型的简单解释语言。不幸的是我遇到了以下问题。测试时如下代码: def main() { def ks = Map[[1, 2]].keySet()
一直提示输入 1 到 10 的数字 - 结果应将 st、rd、th 和 nd 添加到数字中。编写一个程序,提示用户输入 1 到 10 之间的任意整数,然后以序数形式显示该整数并附加后缀。 public
我有这个 DownloadFile.java 并按预期下载该文件: import java.io.*; import java.net.URL; public class DownloadFile {
我想在 GUI 上添加延迟。我放置了 2 个 for 循环,然后重新绘制了一个标签,但这 2 个 for 循环一个接一个地执行,并且标签被重新绘制到最后一个。 我能做什么? for(int i=0;
我正在对对象 Student 的列表项进行一些测试,但是我更喜欢在 java 类对象中创建硬编码列表,然后从那里提取数据,而不是连接到数据库并在结果集中选择记录。然而,自从我这样做以来已经很长时间了,
我知道对象创建分为三个部分: 声明 实例化 初始化 classA{} classB extends classA{} classA obj = new classB(1,1); 实例化 它必须使用
我有兴趣使用 GPRS 构建车辆跟踪系统。但是,我有一些问题要问以前做过此操作的人: GPRS 是最好的技术吗?人们意识到任何问题吗? 我计划使用 Java/Java EE - 有更好的技术吗? 如果
我可以通过递归方法反转数组,例如:数组={1,2,3,4,5} 数组结果={5,4,3,2,1}但我的结果是相同的数组,我不知道为什么,请帮助我。 public class Recursion { p
有这样的标准方式吗? 包括 Java源代码-测试代码- Ant 或 Maven联合单元持续集成(可能是巡航控制)ClearCase 版本控制工具部署到应用服务器 最后我希望有一个自动构建和集成环境。
我什至不知道这是否可能,我非常怀疑它是否可能,但如果可以,您能告诉我怎么做吗?我只是想知道如何从打印机打印一些文本。 有什么想法吗? 最佳答案 这里有更简单的事情。 import javax.swin
我是一名优秀的程序员,十分优秀!