为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 Java 中使用 GUI 添加文本和删除文本

如何在 Java 中使用 GUI 添加文本和删除文本

Cats萌萌 2022-09-28 14:36:05
我正在创建一个哑手机(像旧的传统手机一样),我正在使用GUI编程。我需要有关拨打号码的帮助。我不知道如何让数字在显示屏上弹出并停留在那里,并且还使用删除按钮删除显示屏上的数字。我将发布一个youtube链接,以便您可以看到示例运行。我目前被困在传递每个数字的按钮的文本上,这些按钮应该显示数字,但是它显示按钮的文本。我也不知道当按下其他按钮而不重置时,如何将号码保留在那里。这是我的代码:import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Date;import javax.swing.*;public class DumbPhone extends JFrame{private static final long serialVersionUID = 1L;private static final int WIDTH = 300;private static final int HEIGHT = 500;private static final String CALL_BUTTON_TEXT = "Call";private static final String TEXT_BUTTON_TEXT = "Text";private static final String DELETE_BUTTON_TEXT = "Delete";private static final String CANCEL_BUTTON_TEXT = "Cancel";private static final String SEND_BUTTON_TEXT = "Send";private static final String END_BUTTON_TEXT = "End";private static final String CALLING_DISPLAY_TEXT = "Calling...";private static final String TEXT_DISPLAY_TEXT = "Enter text...";private static final String ENTER_NUMBER_TEXT = "Enter a number...";private JTextArea display;private JButton topMiddleButton;private JButton topLeftButton;private JButton topRightButton;private JButton[] numberButtons;private JButton starButton;private JButton poundButton;private boolean isNumberMode = true;private String lastPressed = "";private int lastCharacterIndex = 0;private Date lastPressTime;public DumbPhone(){    setTitle("Dumb Phone");    setSize(WIDTH, HEIGHT);    setDefaultCloseOperation(EXIT_ON_CLOSE);    createContents();    setVisible(true);    topLeftButton.setEnabled(false);}例如,如果我按下按钮2,而不是给我“2”,它会给我<html><中心>2ABC</中心></html>因此,我需要帮助具有数字按钮,当推送以显示被推送的数字时。能够删除这些数字。下面是示例运行的链接:https://www.youtube.com/watch?v=evmGWlMSqqg&feature=youtu.be尝试在 20 秒内开始播放视频。
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

要删除该号码,可以使用标签名称。


查看完整回答
反对 回复 2022-09-28
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

在基本级别上,您只想将“数字”与UI分开维护。这通常被称为“模型”。该模型独立于 UI 存在,并允许根据应用程序的需要以任意数量可能的方式表示模型。


在你的情况下,你可以使用链表、数组或其他一些简单的基于顺序的列表,但最简单的可能是使用 ,因为它提供了你需要的功能(追加和删除),并且可以非常简单。StringBuilderString


因此,您需要做的第一件事是创建一个模型实例作为实例级字段;


private StringBuilder numbers = new StringBuilder(10);

这将允许访问类实例内的任何位置的缓冲区。


然后,您需要更新模型...


else

{

    topLeftButton.setEnabled(true);

    if (e.getSource() instanceof JButton)

    {

        String text = numberButtons[lastCharacterIndex].getText();

        numbers.append(text);

    }

}

要删除最后一个字符,您可以简单地使用类似...


if (numbers.length() > 0) {

    numbers.deleteCharAt(numbers.length() - 1);

}

然后,当您需要时,您可以使用类似...


display.setText(numbers.toString());

现在,这只是基本概念,您需要将这些想法应用于您的代码库


查看完整回答
反对 回复 2022-09-28
  • 2 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信