Java 全屏幕JFrame顶部的Modal JFrame
我想要Java 全屏幕JFrame顶部的Modal JFrame,java,swing,jframe,jpanel,fullscreen,Java,Swing,Jframe,Jpanel,Fullscreen,我想要f.setVisible(true)在设置为模态的全屏幕JFrame中弹出。我该怎么做?因为在该代码中,当我单击按钮时,f.setVisible(true)显示在全屏JFrame之外。期待您的回答。所以您希望在主JFrame中包含类似于JInternalFrame的内容: package javaapplication1; import java.awt.Color; import java.awt.DisplayMode; import java.awt.GraphicsDevice;
f.setVisible(true)当我点击按钮时,代码>在设置为模态的全屏幕JFrame中弹出。我该怎么做?因为在该代码中,当我单击按钮时,f.setVisible(true)代码>显示在全屏JFrame之外。期待您的回答。所以您希望在主JFrame
中包含类似于JInternalFrame
的内容:
package javaapplication1;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
final JFrame frame = new JFrame();
final NewJPanel p = new NewJPanel();
frame.setTitle("Frame");
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
device.setFullScreenWindow(frame);
device.setDisplayMode(new DisplayMode(800, 600, 32, 60));
JButton btn = new JButton();
btn.setText("Button");
JPanel panel = new JPanel();
panel.add(btn);
frame.add(panel);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFrame f = new JFrame();
JPanel p = new JPanel();
f.setSize(300, 300);
p.setBackground(Color.red);
f.add(p);
f.setLocationRelativeTo(null);
f.setAlwaysOnTop(true);
f.setVisible(true);
}
});
}
}
关于JInternalFrame
的更多信息,您可以在主JFrame
内部找到JInternalFrame
:
package javaapplication1;
import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class JavaApplication1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
final JFrame frame = new JFrame();
final NewJPanel p = new NewJPanel();
frame.setTitle("Frame");
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
device.setFullScreenWindow(frame);
device.setDisplayMode(new DisplayMode(800, 600, 32, 60));
JButton btn = new JButton();
btn.setText("Button");
JPanel panel = new JPanel();
panel.add(btn);
frame.add(panel);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFrame f = new JFrame();
JPanel p = new JPanel();
f.setSize(300, 300);
p.setBackground(Color.red);
f.add(p);
f.setLocationRelativeTo(null);
f.setAlwaysOnTop(true);
f.setVisible(true);
}
});
}
}
关于JInternalFrame
的更多信息,您可以找到+1,他可以生成的输出:-)我的意思是不需要附加图像需要边界布局吗?因为在我的应用程序中,它已经修复了设计和布局。我刚刚删除了边框布局。组件未显示:(你必须在某个地方添加JDesktopPane
。嗯?有什么问题吗?顺便说一句……不要像你在上一篇评论中所说的那样使用“模态JFrame”。如果你想在主框架内显示某种对话框,你可以使用JOptionPane.showInternalMessageDialog()
,如下所示:+1,他可以生成的输出:-)我的意思是没有必要附加图像需要边界布局吗?因为在我的应用程序中,它已经修复了设计和布局。我刚刚删除了边框布局。组件未显示:(您必须在某个地方添加JDesktopPane
。嗯?有什么问题吗?顺便说一句……不要像您在上一条评论中所说的那样使用“模态JFrame”。如果您想在主框架内显示某种对话框,可以使用JOptionPane.showInternalMessageDialog()
,如下所示: