我有两个JFrame login.java,account.java
我需要username从login.java页面获取并将其放在的变量中account.java JFrame。如何使用Swing在Java NetBeans中执行此操作?
我有一个扩展使用NetBeans GUI编辑器构建的javax.swing.JFrame的类。当几个JFrame被打开时,是否有办法使其级联?
我的程序包含3个主要"部分".主要功能,登录表格和App表格.主要功能应该是这样的:打开登录表单,等待它关闭,然后打开App表单.我不能让等待的部分工作,或者更确切地说,我不知道如何去做这件事.
有人告诉我使用JDialog代替并使用setModal(true),但是使用这种方法,登录表单不会出现在任务栏上,这在我看来很糟糕.
我考虑的另一件事是在关闭后从Login内部打开应用程序,但这感觉就像糟糕的设计,因为这会使登录表单不可重用.
那么,拜托,你会建议什么?
我正在使用Google Window Builder for eclipse来创建程序的UI方面.我需要创建一个首选项窗口,以便用户可以更改程序的不同设置.我希望用户能够按下菜单中的"首选项"按钮以显示一个单独的窗口.我遇到的问题是我不知道如何通过Window Builder直观地创建或添加组件到这个单独的窗口.有没有办法通过Window Builder创建一个不是主jframe程序子代的jpanel?
我在NetBeans中设计了两个JFrame.
当我单击"规则"按钮(即放置在JFrame1上)时,它会打开第二个JFrame(但是JFrame2会打开JFrame1的窗口,这就是我不想要的).在第二个JFrame中有一个"关闭"按钮.但是当我单击此按钮时,我希望打开JFrame1并且它也正常工作,但JFrame2实际上没有关闭,JFrame1正在JFrame2上出现.
简而言之,主要形式是JFrame1.当我点击JFrame1中的"规则"按钮时,它会在JFrame1上打开JFrame2,而在JFrame2中,当点击主窗体(即JFrame1)时会有一个"关闭"按钮,但它会通过JFrame2启动.
场景是JFframe1 - > JFrame2 - > JFrame1
现在我的问题是在点击"规则"按钮后,应关闭JFrame1并在屏幕上显示JFrame2,反之亦然.
好吧,我CardLayout在每张卡上使用不同尺寸的卡片时遇到了一些麻烦。
阅读了《使用多个JFrame:好还是不好的做法》之后?我注意到我做事的方式不恰当,所以我决定开始学习如何使用CardLayout
我已经尝试过@HovercraftFullOfEels的答案
这一次从@mKorbel
最后是@Kleopatra 的答案
所有这些都是基于气垫船的答案,但有一些变化。我能够创建CardLayout(并且对此仍然感到困惑),并且我(以某种方式)可以实现Kleopatra的方法,它可以调整框架的大小,但不能如愿,在复制和粘贴代码时,您会注意到它减小了框架的大小。大小仅为几毫米(或像素)。
我不确定这是关于我正在使用的布局管理器,还是因为我没有以正确的方式使用Kleopatra的方法,因为我也不知道@Override方法的工作原理或何时使用它什么时候没有
这是MCVE(我能做的最短的)。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
public class PageViewer extends CardLayout{
private static final String loginCard = "login";
private static final String userCard = "createUser";
JFrame frame;
JPanel contentPane;
CardLayout cardLayout;
@Override
public Dimension preferredLayoutSize(Container parent) {
Component current = findCurrentComponent(parent);
if (current != null) {
Insets insets = parent.getInsets();
Dimension pref = current.getPreferredSize();
pref.width …Run Code Online (Sandbox Code Playgroud) 我试图在Java中实现以下效果:

但是,我不确定使用什么布局以及如何使用.FlowLayout显然不起作用.GridLayout将无法工作,因为前4行应该是1列行,但第5行需要有2列.
到目前为止这是我的代码:
public class DepositPanel extends JPanel
{
private JLabel cashL, checksL;
private JTextField cashTF, checksTF;
private JButton ok, cancel;
DepositPanel()
{
JPanel depositP = new JPanel();
depositP.setLayout(new FlowLayout(FlowLayout.LEFT, 2, 2));
depositP.setPreferredSize(new Dimension(250, 85));
JTextField cashTF = new JTextField(22);
JTextField checksTF = new JTextField(22);
JLabel cashL = new JLabel("Cash:");
JLabel checksL = new JLabel("Checks:");
ok = new JButton("OK");
cancel = new JButton("CANCEL");
depositP.add(cashL);
depositP.add(cashTF);
depositP.add(checksL);
depositP.add(checksTF);
depositP.add(ok);
depositP.add(cancel):
}
}
Run Code Online (Sandbox Code Playgroud) 想想经典的安装过程,你有一个"下一步"按钮,当你点击它时,窗口的内容会发生变化.为了表示这种情况,我想到了两种可能的解决方案
- 当单击"下一步"时,销毁当前的JFrame并创建一个新的JFrame,可能会传递给他的构造函数有用的信息(例如实际窗口大小,用户在当前帧中插入的内容,......)
- 单击"下一步"时,从当前JFrame中删除所有组件,并根据需要添加新组件
第一个解决方案在OOprogramming方面看起来更好,因为我可以为不同的帧保留单独的类,我可以避免使用巨大的方法清空帧并重新填充它.然而,第一个解决方案听起来有点"脏",我应该将大量参数传递给新帧.为了表示这种情况,我会选择第二种解决方案.
现在考虑一个带有"选项"组件的菜单:在这种情况下,我会在单击"选项"时创建一个新的JFrame,这样我就可以用选项来填充它.这是正确的解决方案吗?有没有办法让我总能知道哪一个是最好的解决方案?有没有我没想过的解决方案?
到目前为止这是我的代码:
public static void main(String[] args){
JFrame frame = new JFrame("Breakout!");
frame.setLocation(300, 300);
//Making the menubar
JMenuBar mb = new JMenuBar();
frame.setJMenuBar(mb);
JMenu fileMenu = new JMenu("File");
mb.add(fileMenu);
JMenuItem newAction = new JMenuItem("About");
fileMenu.add(newAction);
newAction.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.out.println("open new window here");
}
});
BreakoutCourt c = new BreakoutCourt();
frame.add(c);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Run Code Online (Sandbox Code Playgroud)
我正在制作突围游戏.我想创建一个关于窗口,显示有关游戏的信息(比如,如何播放等等).我该怎么做呢?感谢您的帮助!我是Java Swing的新手,所以是的.
我在Android中为我的客户构建了大型应用程序.新项目是为Java构建相同的PC应用程序.所以我开始使用swing进行开发.在Android中构建时,我使用具有内容视图的活动的类,我可以在活动之间切换.在java中,我构建了多个扩展JFrame的类,我希望在它们之间切换.什么是正确的方法?
这是:
new_class.setVisible(true);
old_class.setVisible(false);
Run Code Online (Sandbox Code Playgroud)
正确的方法?