我有一个主JFrame,其中包含各种面板,用于不同的功能,人们可以计算其中的内容.当用户点击第一个计算按钮并作为输出窗口时,我想打开一个新的JFrame(如果你熟悉它们,可以选择Simlar到SPSS输出窗口).
新的JFrame将是完全独立的,并有其自己的菜单栏...一个简单的JDialog是不走这里的路.
作为我程序的一部分,我需要一个按钮,当用户点击它时,它会打开一个新窗口.
好吧,我想我应该有一个类来制作框架并通过按钮调用它.但我没有任何想法开始.我只是在程序中得到了我的按钮,但它不起作用.有人能告诉我怎么做吗?或编码.
我目前正在开展一个比我原先想象的更复杂的项目.我现在的目标是显示一个消息对话框,而不会停止程序中主线程的执行.现在,我正在使用:
JOptionPane.showMessageDialog(null, message, "Received Message", JOptionPane.INFORMATION_MESSAGE);
Run Code Online (Sandbox Code Playgroud)
但这会暂停主线程中的所有其他内容,因此它不会一次显示多个对话框,只是在另一个之后.这可能就像创建一个新的JFrame而不是使用JOptionPane一样简单吗?
我正在使用Swing的应用程序.我已经成功地为用户创建了一个主GUI.但是,我想允许用户更改他/她的设置.我该如何创建设置窗口?使用名为"设置"的新JFrame是处理此问题的最佳方法,还是比第二个JFrame更好用?
(注意:退出时设置JFrame不会关闭主GUI,它会使用DISPOSE方法)
我想以一种消耗最少内存的方式来处理这个问题,但是要保持应用程序的专业化外观.
如果我创建不可调整大小的JFrame,并启用Windows Aero setLocation似乎没有正确考虑窗口边框.
在下面的代码中,我希望第二帧位于第一帧的右侧,而不是边框重叠.如果禁用Aero,或者我删除了setResizable对此的调用,则按预期完成.
import java.awt.Rectangle;
import javax.swing.JFrame;
public class FrameBorders {
public static void main(String[] args) {
JFrame frame1 = new JFrame("frame 1");
JFrame frame2 = new JFrame("frame 2");
frame1.setResizable(false);
frame2.setResizable(false);
frame1.setVisible(true);
Rectangle bounds = frame1.getBounds();
frame2.setLocation(bounds.x+bounds.width, bounds.y);
frame2.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)
我做错了什么或这是一个错误?如何在没有重叠边框的情况下并排显示2个不可调整的对话框?
编辑:添加了截图(也将frame2更改为JDialog而不是JFrame)
Aero On:

Aero Off:

Aero On但可调整大小:

我想学习如何写一个ActionListenerfor JLabel.我想制作一个标签,在用户点击标签时为用户打开一个新框架.也许MouseListener可以工作,但我不知道如何做到这一点.
对于学校,我必须在一个按钮和两个文本区域内制作一个JFrame.无论你在Textfield中放置什么,当按下按钮时,必须进入文本字段2.当我运行程序时,我得到了代码,我应该看到textfields和按钮.无论出于何种原因,它都没有.
我到目前为止:
package helloworld;
import javax.swing.*;
import java.awt.event.*;
public class HelloWorld extends JFrame {
public static void main(String[] args) {
JFrame frame = new HelloWorld();
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setTitle("Hello World Button App");
JPanel panel = new JPanel();
frame.setContentPane(panel);
fram.setVisible(true);
}
}
class panel extends JPanel {
public JButton btn1 = new JButton("Klick!");
public JTextField txt1 = new JTextField(10);
public JTextField txt2 = new JTextField(10);
public panel() {
add(btn1);
add(txt1);
add(txt2);
}
}
Run Code Online (Sandbox Code Playgroud)
我还不能发布图片,但我会在这里提供图片的链接
如果这个问题已经出现,我很抱歉,但我找不到类似的问题.我是编程的新手,所以当我忘记某些内容或写错了内容时,请不要对我大喊大叫!
我希望能够在java中导航帧.每当我关闭一帧时,剩下的帧也会被打开关闭;整个程序停止.
请帮忙...
我有一个非常简单的JFrame窗口,其中包含一个按钮:No.
在main函数中我设置了setVisible(true);我的JFrame并且在No按钮监听器中我要关闭窗口,所以我将可见性设置为false:setVisible(false);之后我这样做System.exit(0);是为了防止多次运行程序时可能的内存泄漏.
我有两个问题:
System.exit(0);在上述情况下我真的需要吗?JFrame作为一个popup窗口,我不能真正使用,System.exit(0);因为这将终止整个程序.那么如何正确关闭弹出窗口并保持在主JFrame窗口中呢?(现在我只关闭它setVisible(false);,当我通过程序执行多次这样做时,程序变得很慢).我有一个扩展使用NetBeans GUI编辑器构建的javax.swing.JFrame的类。当几个JFrame被打开时,是否有办法使其级联?