Tag: jframe

如何正确隐藏JFrame

我有一个非常简单的JFrame窗口,其中包含一个按钮: 在main函数中我设置setVisible(true); 我的JFrame和No按钮监听器我要关闭窗口,所以我将可见性设置为false: setVisible(false); 然后我做System.exit(0); 为了防止多次运行程序时可能发生的内存泄漏。 我有两个问题: 我真的需要System.exit(0); 在上述情况下? 如果我将此JFrame作为popup窗口,我实际上无法使用System.exit(0); 因为这将终止整个程序。 那么如何正确关闭弹出窗口并保持在主JFrame窗口中呢? (现在我只用setVisible(false);关闭它setVisible(false);当我通过程序执行多次这样做时,程序变得很慢)。

扩展JFrame

扩展JFrame而不是创建新的JFrame有什么优缺点? 例如: public class Test extends JFrame { setVisible(true); } 要么 public class Test { JFrame test = new JFrame(): test.setVisible(true); }

System.exit(0)vs JFrame.EXIT_ON_CLOSE

这两者之间有什么区别吗? 我正在阅读一篇关于你应该总是使用的文章( http://www.javalobby.org/java/forums/t17933 ) System.exit(0); 目前我用 JFrame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 文章说,即使对于Java Swing应用程序,您也应该添加一个侦听器WindowAdapter ,并在其方法windowClosing(WindowEvent e)调用System.exit() windowClosing(WindowEvent e) 。 有什么区别吗? 一种方法比另一种更好吗?

getContentPane()。add()是否与add()相同

getContentPane()。add()是否与add()相同? public class TestFrame extends JFrame{ public TestFrame() { JLabel label = new JLabel(“jo”); getContentPane().add(label); add(label); } }

Java获取JPanel组件

我有一个充满JTextFields的JPanel …… for (int i=0; i<maxPoints; i++) { JTextField textField = new JTextField(); points.add(textField); } 我以后如何在该JPanel中获取JTextField? 就像我想要他们的价值观一样 TextField.getText(); 谢谢

为什么我的坐标不符合我的JFrame大小?

我想在JPanel中做一些绘图但是封闭的JFrame大小似乎与我要求绘制坐标的位置不匹配。 在我的示例代码中,JFrame大小设置为(700,700),最后一个点绘制在(600,600)。 我希望这个点可以从右边和底边画100个像素,但它不是(请看截图)。 这是我正在使用的代码: import java.awt.Graphics; import javax.swing.JFrame; import javax.swing.JPanel; public class Scratch extends JPanel { static int frameWidth = 700; static int frameHeight = 700; public static void main(String[] args) { JFrame frame = new JFrame(); frame.setSize(frameWidth, frameHeight); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Scratch scratch = new Scratch(); frame.getContentPane().add(scratch); frame.setVisible(true); } @Override public void paintComponent(Graphics g) { g.drawRect(100, […]

如何在java中清除我的框架屏幕?

我正在做一个砖头游戏。 我希望每0.1秒后屏幕变得清晰,这样我就可以在框架屏幕上重绘每个东西。 有没有办法直接清除框架屏幕没有任何事件发生?

JPanel没有在JFrame中显示 – Java

Server是我制作的扩展JFrame的类。 Server serverApp = new Server(TITLE, WIDTH, HEIGHT, true, false); 我已经有效地删除了几乎所有其他代码,但问题仍然存在! c = getContentPane(); c.setLayout(new BorderLayout()); //Components /***AHHHHH***/ lblEnterMessage = new JLabel(“Enter Message “); txtEnterMessage = new JTextField(50); txtEnterMessage.addActionListener(this); btnSend = new JButton(“Send”); btnSend.addActionListener(this); taDisplay = new JTextArea(“Test, test test.”, 10, 0); taDisplay.setEditable(false); JScrollPane jspDisplay = new JScrollPane(taDisplay); pnlChatTop = new JPanel(new FlowLayout()); pnlChatTop.add(lblEnterMessage); pnlChatTop.add(txtEnterMessage); […]

在javaswing上从子框架管理父框架

我有一个jframe(父),它创建一个输入框架(子),我得到一些参数。 在“子”框架中,我有“确定”和“取消”按钮。 按下“确定”按钮时,需要使用新数据更新父框架。 最好的方法是什么?

如果我们不生成窗口,为什么Timer不起作用?

这是代码: import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.Timer; public class TimerSample { public static void main(String args[]) { new JFrame().setVisible(true); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { System.out.println(“Hello World Timer”); } }; Timer timer = new Timer(500, actionListener); timer.start(); } } 它会生成一个窗口,然后在终端中定期打印“Hello World Timer”(命令提示符)。 如果我评论这一行new JFrame().setVisible(true); 应用程序不会在命令行中打印任何内容。 为什么? 添加: 我不确定我是否正确理解答案。 […]