gpt4 book ai didi

Java GUI,多框架

转载 作者:行者123 更新时间:2023-12-02 00:06:39 24 4
gpt4 key购买 nike

我该如何创建下面描述的内容?

首先,这是我的 GUI 的基本外观:

enter image description here

当我点击添加新帐户时,我希望 GUI 弹出一个小窗口,用户可以在其中输入登录凭据。我需要将此信息传递回主 GUI,因此我不知道如何处理此问题。

首选项删除帐户也是如此。我该如何创建一个“GUI Overlay”之类的。抱歉,我无法弄清楚我正在寻找的效果的正确术语。

我想尝试使用JOptionPane,但经过一些研究,这似乎不是要采取的路线。

我还考虑过在执行操作时创建一个新的 JFrame 的想法。应该如何解决这个问题?

最佳答案

首先使用框架上的对话框。对话框旨在从用户那里收集少量信息。

我会为您要执行的每个操作创建一个单独的组件。在这些组件中,我将提供 setter 和 getter,以允许您访问由组件管理的信息。

从那里我将使用 JOptionPaneJDialog 向用户显示组件。对我来说,使用其中之一的原因归结为能够控制操作按钮(例如确定取消)。对于登录对话框之类的内容,我想限制用户开始点击登录按钮,直到他们提供了足够的信息来进行尝试。

基本的遵循是这样的......

LoginDialog dialog = new LoginDialog(SwingUtilities.getWindowAncestor(this)); // this is a reference any valid Component
dialog.setModal(true); // I would have already done this internally to the LoginDialog class...
dialog.setVisible(true); // A modal dialog will block at this point until the window is closed
if (dialog.isSuccessfulLogin()) {
login = dialog.getLogin(); // Login is a simple class containing the login information...
}

LoginDialog 可能看起来像这样......

public class LoginDialog extends JDialog {
private LoginPanel loginPane;
public LoginDialog(Window wnd) {
super(wnd);
setModal(true);
loginPane = new LoginPanel();
setLayout(new BorderLayout());
add(loginPane);
// Typically, I create another panel and add the buttons I want to use to it.
// These buttons would call dispose once they've completed there work
}

public Login getLogin() {
return loginPane.getLogin();
}

public boolean isSuccessfulLogin() {
return loginPane.isSuccessfulLogin();
}
}

该对话框只是充当登录 Pane 的代理/容器。

这当然是一个概述,您需要填写空白;)

现在,如果您不想麻烦地创建自己的对话框,则可以利用 JOptionPane相反。

LoginPanel loginPane = new LoginPanel();
int option = JOptionPane.showOptionDialog(
this, // A reference to the parent component
loginPane,
"Login", // Title
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE,
null, // You can supply your own icon it if you want
new Object[]{"Login", "Cancel"}, // The available options to the user
"Login" // The "initial" option
);
if (option == 0) {
// Attempt login...
}

关于Java GUI,多框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693776/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com