- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题:我想创建一个小游戏,我必须制作一个如下所示的窗口:
当我尝试更改“Fun With Words”的字体大小时,它没有改变......
我应该做什么?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JComponent;
public class GameWords extends JFrame
{
private static int W = 800 ;
private static int H = 600 ;
public GameWords ()
{
setTitle ( " Word Order Game " ) ;
setSize ( H , W ) ;
setLayout ( new FlowLayout() ) ;
setDefaultCloseOperation ( EXIT_ON_CLOSE ) ;
createContent () ;
setVisible ( true ) ;
}
public void createContent ()
{
JLabel heading = new JLabel (" Fun With Words ") ;
heading.setFont ( heading.getFont().deriveFont ( 26f ) );
heading.setPreferredSize ( new Dimension ( H , 4 * W ) ) ;
JLabel h1 = new JLabel ( " Hey Kids! Want to prictice your typing and word-ordering Skills ? \n" ) ;
add ( heading ) ;
add ( h1 ) ;
}
public static void main(String[] args)
{
new GameWords () ;
}
}
最佳答案
简短的回答是不需要,API 完全能够自行计算所需的大小。
较长的答案是,不要使用setSize
,而是使用pack
,它使用容器的首选大小来计算窗口的大小
public GameWords ()
{
setTitle ( " Word Order Game " ) ;
setLayout ( new FlowLayout() ) ;
setDefaultCloseOperation ( EXIT_ON_CLOSE ) ;
createContent () ;
pack();
setVisible ( true ) ;
}
public void createContent ()
{
JLabel heading = new JLabel (" Fun With Words ") ;
heading.setFont ( heading.getFont().deriveFont ( 26f ) );
JLabel h1 = new JLabel ( " Hey Kids! Want to prictice your typing and word-ordering Skills ? \n" ) ;
add ( heading ) ;
add ( h1 ) ;
}
作为一般建议,您不应直接从 JFrame
进行扩展,您不会向类添加任何新功能,并且会将自己锁定在单个用例中。作为一般建议,您应该首先从 JPanel
扩展,然后将其添加到您想要使用的任何容器
关于java - 我如何在java中使用setPreferredSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42795492/
这是我第一次尝试使用 Java,所以请放轻松。我查看了其他 JFrame 问题,但我一直无法找到可行的解决方案。 出于某种原因,我无法使 setPreferredSize 或 setSize 工作。
为什么 p1.setPreferredSize(new Dimension(200,200)) 显示错误。它说非法开始类型 class Menu extends JFrame { JPane
我有一个包含多个面板的窗口。我无权访问窗口代码。 (我只能修改面板的代码。) 我从面板中删除了几个组件。窗口已缩小其大小。但是窗口太小,无法正确显示所有内容。 我添加了行 setPreferredSi
代码: import java.awt.Dimension; import javax.swing.*; public class Game extends JFrame { private
我正在尝试正确调整 JPanel 的大小,使其完全适合渲染的 8 x 8 棋盘。当我使用绘画程序放大时,我注意到宽度和高度上都添加了两个额外的像素...... 这还不错,但是当我用其他 JPanel(
我最初使用的是 setSize,但由于 java 边框和标题空间,这导致屏幕内容略大于屏幕。所以我使用了 setpreferredSize,现在屏幕尺寸有点太大了。在我的内容的右侧和底部留一个空格。
根据以前的经验,每个人都会说“不要使用那些 setXxxSize 方法!使用布局管理器!”但是,在这种情况下我该怎么办? import java.awt.*; import javax.swing.*
代码如下: import javax.swing.*; import java.awt.event.*; import java.awt.*; public class TestGrid {
我正在用 Java 创建一个 Tic Tac Toe 游戏,我似乎陷入了一个我无法摆脱的问题:(。我无法调整我的按钮大小。我尝试了 setSize 和 setPreferredSize,但似乎不起作用
根据我收到的答案,我现在采用不同的方式进行此操作。 是否有任何方法可以重写 setPreferredSize() 和 getPreferredSize() ,以便它实际上将组件的大小设置为高于实际输入
我正在尝试构建自己的 JComponent,但一开始并不理想。我可以创建一个对象,然后将其添加到 JFrame 或 JPanel,它将添加到组件列表中。我不知道如何设置PreferredSize()。
在布局管理器中,当我使用 setPreferedSize 时,它增加了 JLabel 的大小,但在之后仅显示一个单词,例如 (JLabel = Name)使用setPreferedSize JLabe
我正在使用 JScrollPane 并在 viewportView.doLayout 内调用 viewportView.setPreferredSize。但这似乎是错误的,因为 JScrollPane
昨天我在向 JScrollPane 添加 JTable 和 JPanel(其中包含 JButton)时出错。 JButton 固定在表格的底部,单击时它会向 JTable 添加一行。 问题是如果表格变
我已经使用 View 过滤方法成功过滤了一个 JTree(在树渲染中,将首选组件大小设置为 0 以过滤掉项目)。请参阅 [ Filtering on a JTree 我有一个包含超过 100 万个树项
我在这里读了一些帖子,我开始了解为什么有些人会这样做 @Override public Dimension getPreferredSize() { return new Dimension(
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我想要一个串联的 JPanel 的“列表”,其中每个单元格都有相应的 JPanel 的大小。例如: 在此示例中,Panel1 的 setPreferredSize 小于 Panel2 的 setPre
所以我一直在尝试为牙医创建这个简单的用户界面,当我在标题下添加顶部菜单时,我注意到“setPreferredSize”没有按预期工作。基本上我希望菜单水平扩展,所以我使用 GridBagLayout
我有一个 JPanel (imagePanel),可以在其上显示图像。我在另一个 JPanel (scrollPanel) 中有 imagePanel,并使用 GridBagLayout 默认约束将其
我是一名优秀的程序员,十分优秀!