简单的java计算器

问题描述:

我用Java Swing创建了一个基本的计算器。我有的问题是如何在面板上打印每个计算。例如,我添加了两个数字,我的面板应该看起来像2 + 4 = 6,如果我执行另一个操作,它应该在面板中附加另一个操作。简单的java计算器

我的想法:我知道我可以使用标签并更改标签的值,但这不是一个好主意,因为随着操作的增加,我无法继续添加标签,我相信应该有一种方法但自从我学习Swing以来,我需要专家的帮助。

+0

我不明白的问题,什么你的意思做“的操作增加,我不能继续添加标签”? – 2011-06-02 22:02:18

+0

这不是“给我teh codez”网站,你需要展示你的工作,解释不工作的地方,并提出具体的问题......否则你的问题就会关闭。 – 2011-06-02 22:02:27

+0

@Charlesworth:我的意思是我有很少的操作,比如2 + 3 = 5,2/2 = 1,3-4 = -1等,我已经把所有这些操作打印在jpanel上,而不仅仅是一个最近的操作。我可以通过为标签赋值来完成标签的操作,但是我需要所有我已经完成的操作,例如100.我如何动态地将这些操作添加到我的面板是我的问题。 – user525146 2011-06-02 22:10:11

有两种可能性:

  1. 使用一个JTextArea,并将其设置为不可编辑。文本区域控件将允许您添加多行文本,以便您可以随时继续添加操作。

    textArea.setEditable(false);

  2. 将文本绘制为画布上的图形。这是多一点参与,但您可以更好地控制文本的外观和格式。

    g.drawString(“a + b = c”,x,y);

+0

JTextArea选项的一个重要的未提及的优势 - 用户将能够轻松地复制/粘贴结果 – 2011-06-02 22:20:25

+0

追加到文本框的作品就像一个魅力:)。非常感谢你 – user525146 2011-06-02 23:13:54

面板很可能会从字符串中读取。尝试使用StringBuilderStringBuffer在输入输入时追加到字符串。

这样,如果您选择添加更多操作,您还可以修改/删除最终的“= 6”并添加另一个“+ 6 = 10”。然后使用toString()当你想刷新面板上的最终结果而不创建一个全新的String。

要么做一个JLabel中,而不是增加新的和显示的,你可以在一个JLabel使用的getText()的文本,然后追加你要添加的文字,最后使用的setText()发送您的新的和完整的文本,以便一个JLabel包含所有文本。 或 你可以创建一个JPanel或JComponent(你可以用paintComponent(Graphics g)绘制并使用带字符串绘制的g.drawString()(这将是你完整的附加文本),并且x,y要绘制的位置,例如: g.drawString(“2 + 6 = 8”,100,120); 您必须在组件上调用repaint()以更新文本。字符串某处组件可以同时提请访问。

我希望这有助于。