我使用Java Swing创建了一个基本的计算器。我的问题是如何在面板上打印每个计算。例如,我添加了两个数字,我的面板应该看起来像2 + 4 = 6,如果我执行另一个操作,它应该在面板中附加另一个操作。
我的想法:我知道我可以使用标签并更改标签的价值,但这不是一个好主意,因为随着操作的增加,我不能继续添加标签,我相信应该有办法但是因为我正在学习Swing,所以需要专家的帮助。
答案 0 :(得分:4)
有两种可能性:
使用JTextArea并将其设置为不可编辑。文本区域控件允许您添加多行文本,以便您可以随意添加操作。
textArea.setEditable(假);
在Canvas上将文本绘制为图形。这有点复杂,但你可以更好地控制文本的外观和格式。
g.drawString(“a + b = c”,x,y);
答案 1 :(得分:0)
该面板很可能从字符串中读取。 3}}或StringBuilder在输入输入时尝试使用字符串附加。
这样,如果您选择添加更多操作,您还可以修改/删除最后的“= 6”并添加另一个“+ 6 = 10”。然后在想要刷新面板上的最终结果时使用toString(),而不创建一个全新的String。
答案 2 :(得分:0)
要么创建一个JLabel而不是添加新的JLabel并显示它们,您可以使用JLabel上的getText()获取文本,然后附加要添加的文本,最后使用setText()发送新的和完整的文本这样一个JLabel就有了所有文本。 要么 你可以创建一个JPanel或JComponent(可以使用paintComponent(Graphics g)绘制的东西,并使用g.drawString()来绘制一个字符串(这将是你的完整附加文本)和x,y位置绘制例如 g.drawString(“2 + 6 = 8”,100,120); 并且您必须在组件上调用repaint()才能更新文本。确保您可以将字符串存储在组件可以在绘图时访问的位置。
我希望这会有所帮助。