- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为 CS 类(class)制定税务计划。我正在使用 cleanbeans 并用 java 进行编程。我是编程新手。我的代码似乎正常工作,但是当我从 JComboBox 中选择“单个”以外的选项时,数学并没有按照应有的方式改变。它继续使用“单个”选择中的数学。我想知道如何解决这个问题。另外,有一个随机的 2000 美元似乎在数学中 float ,所以我的计算有问题,但对于我的生活,我无法弄清楚是什么。当用户输入一个较低的 ' “应税收入”的计算结果始终比应有的水平高出 2000 美元,因此我减去了 2000 美元以使其正常工作。但是,当用户输入大量“应税收入”时,数学结果总是准确的,因此我减去了 2000美元错误。如果有人能看一下我的代码并帮助我,我将不胜感激。PS,因为我正在调试程序,所以只填写了“单例”和“已婚联合备案”。
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class IncomeTax2 extends JFrame implements ItemListener
{
private JTextField jtfIncome;
private JTextField jtfTax;
private JButton jbCalculate;
private JComboBox jcb;
private JLabel info;
private String[] fsChoice =
{
"", "Single", "Married filing jointly", "Married filing separately",
"Head of Household"
};
int income;
double tax;
private String filingStatus;
public static void main(String[] args)
{
JFrame frame = new IncomeTax2();
frame.pack();
frame.setTitle("Income Tax Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public IncomeTax2()
{
JPanel p = new JPanel();
p.setLayout(new GridLayout(3, 2, 5, 5));
p.setBorder(new EmptyBorder(5, 5, 5, 5));
p.add(jtfIncome = new JTextField(8));
p.add(jcb = new JComboBox(fsChoice));
p.add(info = new JLabel("Enter taxable income "
+ "than pick filing status"));
p.add(jbCalculate = new JButton("Calculate"));
p.add(jtfTax = new JTextField(16));
jtfTax.setEditable(false);
setLayout(new BorderLayout());
jtfTax.setHorizontalAlignment(JTextField.RIGHT);
add(p, BorderLayout.CENTER);
jtfIncome.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
char c = e.getKeyChar();
if (!(Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE)
|| c == KeyEvent.VK_DELETE || c == KeyEvent.VK_ENTER))
{
Toolkit.getDefaultToolkit().beep();
System.out.println("User must enter a digit.");
e.consume();
}
}
});
jcb.addItemListener(this);
jbCalculate.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
calculate();
}
});
}
public void itemStateChanged(ItemEvent e)
{
income = Integer.parseInt(jtfIncome.getText());
if (e.getStateChange() == ItemEvent.SELECTED)
{
filingStatus = (String) jcb.getSelectedItem();
System.out.println(filingStatus);
switch (filingStatus)
{
case "Single":
if (income <= 8350)
{
tax = income * 0.10;
}
if (income >= 8351 && income <= 33950)
{
tax = income * 0.15;
}
if (income >= 33951 && income <= 82250)
{
tax = income * 0.25;
}
if (income >= 82251 && income <= 171550)
{
tax = income * 0.28;
}
if (income >= 171551 && income <= 372950)
{
tax = income * 0.33;
} else
{
tax = income * 0.35;
}
break;
case "Married filing jointly":
if (income <= 16700)
{
tax = income * 0.10;
}
if (income >= 16701 && income <= 67900)
{
tax = income * 0.15;
}
if (income >= 67901 && income <= 137050)
{
tax = income * 0.25;
}
if (income >= 137051 && income <= 208850)
{
tax = income * 0.28;
}
if (income >= 208851 && income <= 372950)
{
tax = income * 0.33;
} else
{
tax = income * 0.35;
}
break;
}
}
}
public void calculate()
{
jtfTax.setText((int) (tax - 2000) + "");
}
}
最佳答案
我收到错误,例如,输入 4000,税费为 1400,即 4000 的 35%,因此看起来像是 if 的问题。您可以通过两种方式解决此问题,第一种是更改 if
if (income <= 8350){
tax = income * 0.10;
break;
}
在每个(不要)中,另一个选项只是放置一个
else if (income > 372950)
而不是最后只有一个 else 。这解决了你所遇到的奇怪的 2000 美元问题拥有。
关于java - 我的 Jcombobox 似乎正在工作,但是当我在其中进行任何选择时,程序似乎没有注册更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22542660/
谁能帮我解决这个问题?我有一个 Tomcat 和简单的 JSF 应用程序:https://github.com/gooamoko/jsfbilling/ .当我在 Tomcat 上运行应用程序时,它运
我有两个这样的域类,第一个是 Manager : package com.mnm class Manager { String name; static hasMany = [ pro
当我运行以下代码时,打印输出似乎不正确。 void thread_Calc(int *pos) { printf("recieved %d\n", *pos); sig = -1; man
这个问题在这里已经有了答案: How to access a local variable from a different function using pointers? (10 个答案) 关闭
我编写了一个程序,其中列表构建器方法返回 IEnumerable of string,其中包括大量字符串(100 万个项目),我将其存储在 List of string 中,然后它将所有项目附加到 中
我正在尝试编写一个 IRC 类型的聊天客户端,它具有可以连接到服务器的客户端。我试图让它在本地 atm 上工作(使用 FIFOS 而不是套接字)。 我遇到了以下我似乎无法解决的问题: 接受新的客户端连
我的一个 cronjobs 每天发送一封电子邮件 35 6 * * * cd $EZPUBLISHROOT && $PHP runcronjobs.php -q 2>&1 我停止使用 cron sud
我使用 WPF 打印路径来处理在我们的应用程序中创建的大型图表。整个图表由视觉效果组成。 所谓的“DesignerPaginator”对图表进行分页(非常简单)。 从这一点来说,我做了以下三件事: -
我尝试在更新之前跟踪系统应用程序并使用: public static boolean isSystemApplication(Context ctx, IContent content) {
我在这里附上了一个查询分析结果,https://explain.depesz.com/s/x9BN 这是查询 EXPLAIN ANALYZE SELECT branche
我正在做一个 CXF(spring) 项目 (HUB)。部署后,我可以看到肥皂和休息服务列表,我通过两个地址打开它。一种是使用本地主机,第二种是使用我电脑的 ip。所以我得到了这些输出。 使用本地主机
这是一个 AnyHashable 不支持枚举转换的简单案例。 enum testEnum: String { case Test } let myObject: AnyHashable = t
我的主要目标是比较存储在数据库和 XLSX 文件中的数据。 为此,我按以下方式创建了两个列表: private class ProductList { public string produc
我从 CMake 3.6 更新到任何最新版本 (3.12.0-rc2),现在我的一个程序无法编译。 奇怪的是,错误消息显示了标准库本身中的 undefined symbol 。这是错误消息: Unde
我希望将我的自定义对话框动画化为从特定点出现,但我无法为对话框设置动画。 该对话框是一个基本的 RelativeLayout,设置为 extends Dialog 类中的布局。 正如这里的一些答案所建
我已经在这个论坛上调查过很多类似的问题,但似乎没有一个能解决我的问题。 我会在底部列出我在这个论坛上看到的一些问题页面,但让我先谈谈我对这个问题的看法。 我正在使用 codeigniter v 2.x
我正在尝试在 RHEL 7 上启动一个 docker-compose 项目作为 systemd 服务。这是我的 systemd 脚本 (/etc/systemd/system/wp.service):
这个问题已经有答案了: "Notice: Undefined variable", "Notice: Undefined index", "Warning: Undefined array key",
我正在尝试在 RHEL 7 上启动一个 docker-compose 项目作为 systemd 服务。这是我的 systemd 脚本 (/etc/systemd/system/wp.service):
此问题出现在my last question here之后。我想将每个按钮聚焦和失去焦点背景设置为主菜单(ContentPane 即 JPanel)下方的背景颜色,因此按钮看起来像选项卡。它在不同的环
我是一名优秀的程序员,十分优秀!