Простой Java-калькулятор - PullRequest
2 голосов
/ 03 июня 2011

Я создал базовый калькулятор, используя Java Swing. У меня вопрос, как распечатать каждый расчет на панели. например, я добавил два числа, моя панель должна выглядеть примерно как 2 + 4 = 6, и если я выполняю другую операцию, она должна добавить еще одну операцию на панель.

Моя идея: я знаю, что могу делать с метками и изменять значение меток, но это не очень хорошая идея, поскольку по мере увеличения операций я не могу продолжать добавлять метки, я считаю, что должен быть способ Поскольку я изучаю Swing, мне нужна помощь экспертов.

Ответы [ 3 ]

4 голосов
/ 03 июня 2011

Есть две возможности:

  1. Используйте JTextArea и установите его как недоступный для редактирования. Элемент управления текстовой области позволит вам добавлять несколько строк текста, чтобы вы могли добавлять операции по своему усмотрению.

    textArea.setEditable (ложь);

  2. Нарисуйте текст в виде графики на холсте. Это немного сложнее, но у вас есть больше контроля над тем, как текст выглядит и как он отформатирован.

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

0 голосов
/ 03 июня 2011

Либо создайте один JLabel, и вместо добавления новых и их отображения вы можете получить текст с помощью getText () на JLabel, затем добавить текст, который вы хотите добавить, и, наконец, использовать setText (), отправив новый и полный тексттак что у одного JLabel есть весь текст.ИЛИ Вы можете создать JPanel или JComponent (то, что вы можете рисовать с помощью paintComponent (Graphics g) и использовать g.drawString (), который берет строку для рисования (которая будет вашим полным добавленным текстом) и расположение x, y вчтобы нарисовать eggdrawString ("2 + 6 = 8", 100, 120); вам нужно будет вызвать repaint () для компонента, чтобы обновить текст. Убедитесь, что вы можете сохранить строку там, где компонент может получить к ней доступ, покарисунок.

Надеюсь, это поможет.

0 голосов
/ 03 июня 2011

Панель, скорее всего, будет читать из строки.Попробуйте использовать StringBuilder или StringBuffer для добавления к строке при вводе ввода.

Таким образом, вы также можете изменить / удалить окончательное "= 6" идобавьте еще «+ 6 = 10», если вы решите добавить больше операций.Затем используйте toString (), когда вы хотите обновить окончательный результат на панели, не создавая полностью новую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...