您可以通过几种方式通过鼠标拖动来调整JFrame的大小:
除了数字5以外,我的程序正在每一个动作上重新绘制。
这是为什么?
那可能是我程序中的错误吗?似乎并非如此。我不知道在特定情况下我应该在哪里放置重绘请求…似乎JFrame本身应该在每次调整大小后对其contentPane调用重绘,对吗?
它闻起来像Java本身的JFrame类中的错误。
SSCCE:
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
class Gui
{
Gui()
{
JFrame masterWindow = new JFrame("My very own SSCCE");
masterWindow.setSize(1100, 100);
masterWindow.setLocationRelativeTo(null);
masterWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
masterWindow.setVisible(true);
}
}
class Main
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
new Gui();
}
});
}
}
抓住JFrame的顶部边缘并将其拖动到屏幕的顶部边缘并释放。底部延伸部分应为黑色。如果您随后将其最大化,则它将全部变为灰色,这应该是灰色的。
我仍然说这是Java或Windows错误。
它似乎是Windows的Java实现中的错误。(我也在使用Windows 7和JDK7。)
当Windows决定更改窗口的高度时COMPONENT_MOVED
,Window会收到一个事件,但不会COMPONENT_RESIZED
收到任何事件。
在Windows类内部,非公共方法dispatchEventImpl()
将COMPONENT_RESIZED
通过调用invalidate()
和来响应事件validate()
,但它将忽略COMPONENT_MOVED
事件。
这是使窗口在发生此类事件后重新验证自身的蛮力方法。这可能在其他情况下偶尔使窗口重新验证,但不是很常见,因为Window类本身在每个COMPONENT_RESIZED
事件之后都在进行重新验证,并且所报告的错误仅在用户正在主动调整窗口大小时发生。
masterWindow.addComponentListener(new ComponentAdapter() {
private int oldWidth = 0;
private int oldHeight = 0;
@Override
public void componentResized(ComponentEvent e) {
oldWidth = masterWindow.getWidth();
oldHeight = masterWindow.getHeight();
}
@Override
public void componentMoved(ComponentEvent e) {
if (masterWindow.getWidth() != oldWidth || masterWindow.getHeight() != oldHeight) {
masterWindow.invalidate();
masterWindow.validate();
}
oldWidth = masterWindow.getWidth();
oldHeight = masterWindow.getHeight();
}
});
问题内容: 我正在使用Swing制作快速且肮脏的动画。我希望窗口最大化。我怎样才能做到这一点? 问题答案: 前提是您要扩展JFrame:
我试图设置一个渐变覆盖整个页面 这是我的代码: (我知道我写的最大高度:1%;,请继续阅读) 正如我所说,身高:100% 不起作用,所以我尝试使用各种输入,我看到的是,当我使用像素作为最大高度时,渐变的高度会发生变化,但无论我选择什么输入作为百分比的最大高度,渐变的高度都会保持不变,例如,在我的代码中,我使用了最大高度:1% 和渐变仍然超出了网页的高度。 我检查了开发工具,并应用了max heig
问题内容: 编写CSS媒体查询时,有什么方法可以使用“或”逻辑指定多个条件? 我正在尝试做这样的事情: 问题答案: 使用逗号指定两个(或多个)不同的规则: 从https://developer.mozilla.org/en/CSS/Media_queries/ …此外,您可以在逗号分隔的列表中组合多个媒体查询;如果列表中的任何媒体查询为true,则将应用关联的样式表。这等效于逻辑“或”运算。
问题内容: 允许用户调整窗口的宽度和高度。是否存在允许用户仅调整高度大小的方法? 谢谢。 编辑: 下面的解决方案似乎不起作用。在360x600 JFrame上, 仍然允许完全拉伸JFrame的宽度,而设置则不允许任何拉伸。 问题答案: 下面的代码可以正确完成工作。
问题内容: 如何通过代码最大化JFrame? 问题答案: 试试这个:
问题内容: 我在jFrame中使用和。这很好用,但是现在当我最大化框架时,即使任务栏不可见,它也会散布在整个窗口中。如何使框架不隐藏任务栏? 另外,当我最大化最小化我的帧时,光标会多次更改为该值,这通常用于当光标位于帧的边界时更改帧的大小。有什么我可以做的吗? 一小段代码即可重现内容: 问题答案: 这是一个已知的错误:http : //bugs.sun.com/bugdatabase/view_b