我试图得到的大小的JPanel,以便我可以随后计算正确的尺寸的图形我计划添加。因为我已经将JFrame的大小设置为(300,200),所以我期望getpreferredsize()函数返回略小于(300,200)的值(即减去边框)。但是,该函数简单地为高度和宽度返回10。请帮忙。
import javax.swing.JFrame;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.io.*;
import java.awt.Dimension;
class Main {
public static void main(String[] args) {
Frame f = new Frame();
}
}
class Frame extends JFrame {
public Frame() {
setSize(300, 200);
setLocationRelativeTo(null);
setTitle("Test Panel Size");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLayout(new BorderLayout());
add(drawPanel, BorderLayout.CENTER);
pack();
drawPanel.printPanelSize();
}
private Panel drawPanel = new Panel();
}
class Panel extends JPanel {
public void printPanelSize() {
Dimension size = getPreferredSize();
int w = size.width;
int h = size.height;
System.out.println("h = " + h + " w = " + w);
}
}
代替
setSize(300, 200);
与
setPreferredSize(new Dimension(300, 200));
替换
Dimension size = getPreferredSize();
与
Dimension size = getSize();
问题内容: 在Java中,是否可以获得不含标题和其他边框的JFrame的宽度和高度? frame.getWidth()和frame.getHeight()1似乎返回包括边框在内的宽度。 谢谢。 问题答案:
我试图让2支球队互相比赛。当我说团队1.玩(团队2)时,我称之为;当 i 生成的数字小于 0.5 时,team2 应获胜,如果大于 0.5,则团队 1 应获胜。当团队 1 获胜时,它会正确显示为尼克斯,但当团队 2 获胜时,它会显示内存地址。我怎么能让它正确地说网是赢的,而不是team@78987neu73
我为A队按了3分,现在当我从seconActivity回来时,分数显示为0 但是分数仍然是3,因为我把分数作为静态的,所以当我再次按下3按钮时,分数变成了6,但是为什么这里显示为0
我有一个函数,它接收两个大十进制数,即bd1和bd2作为参数。函数应该减去bd1-db2并返回 bd1和bd2的刻度都是2,结果也应该只有2的刻度,但使用减法是按比例缩小到小数点后的完整表示形式。我希望刻度设置为2,并尝试使用setScale,但setScale需要舍入模式,并且不清楚使用哪种舍入模式才能获得限制在刻度2的精确结果 需要的是获得比例为2的精确减去值(bd1-bd2)。在这种情况下,
问题内容: 这是我的发件人实体 当我尝试执行以下查询时: 发生以下错误: 错误:org.hibernate.property.BasicPropertyAccessor- HHH000123:类中的IllegalArgumentException:be.gimme.persistence.entities.Sender,属性的设置方法:senderId 错误:org.hibernate.prope
我正在使用Yaml(和Python!)第一次。我试图从一个.yaml文件中加载多个文档,但没有得到我所期望的结果。我正在期待一个包含每个文档的dicts的dict返回,但却得到了一个生成器对象...?我应该注意到,当我在前面的测试中对单个文档yaml文件使用yaml.load()(而不是load_all())时,我能够很好地取回一个字典。 ...产生以下终端输出: