我打算制作一个具有600x600的ContentPanel的JFrame,并且我希望JFrame不是可重放的。在这个框中,我画了一个600x600的红色矩形,以确保运行程序时所有内容都匹配。在限制JFrame的大小之前,我通过执行以下操作来设置JFrame的大小:
getContentPane().setPreferredSize( new Dimension(600,600));
pack();
注意:在不修改大小的情况下创建一个JFrame也可以观察到这个异常。如果不使其不可调整大小,则没有可观察的Panel/ContentPane,但是当使用isResizable(false)时,会有Panel/Pane的可见部分。
你是对的,将一个框架设置为不可重放似乎确实增加了10个像素的高度和宽度,至于为什么,我不能说,这似乎是更新本机对等体的副作用,然而...
您可以通过在调用jframe#setResizable
之后调用jframe#pack
来重置它
public class TestResizableFrame {
public static void main(String[] args) {
new TestResizableFrame();
}
public TestResizableFrame() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new FixedPane());
frame.setResizable(false);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class FixedPane extends JPanel {
@Override
public Dimension getPreferredSize() {
return new Dimension(200, 200);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Dimension size = getSize();
String text = size.width + "x" + size.height;
FontMetrics fm = g.getFontMetrics();
int x = (getWidth()- fm.stringWidth(text)) / 2;
int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();
g.drawString(text, x, y);
g.setColor(Color.RED);
g.drawRect(0, 0, getWidth() - 1, getHeight() - 1);
}
}
}
问题内容: 调整在管理面板中设置的图像大小时出现问题。 然后我尝试删除height: 100px似乎可以解决问题的属性,但是由于某种原因关闭了一张图像 问题答案: 如果您不希望图像拉伸,则应固定一个尺寸,而将另一个尺寸设为auto。(这将保留图像的长宽比) 请参阅下面的示例,其中width在height自动调整时保持不变: 请参阅下面的示例,其中height在width自动调整时保持不变:
问题内容: 我打算制作一个ContentPanel为600x600的JFrame,并且我希望JFrame的大小不可调整。在此框内,我绘制了一个600x600的红色轮廓矩形,以确保运行程序时所有内容都匹配。在限制JFrame的大小之前,我通过执行以下操作来设置JFrame的大小: 当我启动程序时,矩形的边界与JFrame的尺寸完全吻合。但是,当我在公式中添加isResizable(false)时,在
我正在用GWT/GXT开发一个基于浏览器的应用程序。html文件包含一个用html编写的静态头文件和一个用视口填充的div。 视口在这里非常有用,因为它允许自动调整大小。但是,视口始终随浏览器大小而调整大小,并且不考虑html标题大小。所以我总是有一部分视口隐藏:/ 你知道另一种方法吗? 对不起,我的英语很差:)谢谢
我正在尝试构建一个包含6个窗格(作为父级添加到GridPane布局中)的简单Java项目。我必须在开始时设置窗口大小,并通过参考根布局的宽度和高度,设法将它们均匀地拆分。 但我想要他们调整大小,因为我改变了窗口的大小(使用鼠标,现在他们得到固定的大小)。 下面是我的代码:
我有一个问题已经部分解决了,但我很好奇另一个(更好的)解决方法…我想要一个画布,什么填充整个窗口,并调整自己的大小,如果窗口的大小。 根据这个:https://dlemmermann.wordpress.com/2014/04/10/javafx-tip-1-resizable-canvas/和这个:如何在JavaFX中使canvas可调整大小?我已创建(复制)类: 并将以下内容放入viewfie
我最近在测试一个并发负载相对较高的演示应用程序。该应用程序是一个java应用程序,运行在Hotspot JVM(1.8.0_111)上。 使用4G堆和并行吞吐量收集器,我可以获得大约400 TPS的最大吞吐量。吞吐量图(作为负载的函数)如下所示。 因为Oracle建议对大于4G的堆大小使用G1GC,所以我想尝试G1,看看这是否对我的应用程序吞吐量有任何好处。 令我惊讶的是,在G1GC中,我看到了低