问题

When I execute this bit of code, a tiny window pops up that, and the inside of it is about 116x63, and the entire size including the border of ~140x100. How do I set the inside to be what I need it to?

public static void graphics() {

JFrame frame = new JFrame();

String title = \"test window\";

frame.setTitle(title);

frame.setSize(gridRow, gridCol); //101 x 101

frame.setResizable(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

回答1:

Create a custom component, extending from JPanel, override its getPreferredSize method to return the size of the window you would like.

Either add this to your frame or set it as the frame's content pane.

Call pack on the frame

Updated with example

On my PC, the Frame size = java.awt.Dimension[width=216,height=238]

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.EventQueue;

import java.awt.FontMetrics;

import java.awt.Graphics;

import java.awt.Graphics2D;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.UIManager;

import javax.swing.UnsupportedLookAndFeelException;

public class TestFrameSize01 {

public static void main(String[] args) {

new TestFrameSize01();

}

public TestFrameSize01() {

EventQueue.invokeLater(new Runnable() {

@Override

public void run() {

try {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {

}

JFrame frame = new JFrame("Testing");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setLayout(new BorderLayout());

frame.add(new TestPane());

frame.pack();

frame.setLocationRelativeTo(null);

frame.setVisible(true);

System.out.println("Frame size = " + frame.getSize());

}

});

}

public class TestPane extends JPanel {

public TestPane() {

}

@Override

public Dimension getPreferredSize() {

return new Dimension(200, 200);

}

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2d = (Graphics2D) g.create();

String text = getWidth() + "x" + getHeight();

FontMetrics fm = g2d.getFontMetrics();

int x = (getWidth() - fm.stringWidth(text)) / 2;

int y = ((getHeight() - fm.getHeight()) / 2) + fm.getAscent();

g2d.drawString(text, x, y);

g2d.dispose();

}

}

}

来源:https://stackoverflow.com/questions/16473627/java-jframe-setsizex-y-not-working

java中JFrame.setSize,Java JFrame .setSize(x, y) not working?相关推荐

  1. Java中的记录器 - Java日志示例

    Java中的记录器 - Java日志示例 今天我们将研究Java中的Logger.Java Logger提供了java编程的日志记录. 目录[ 隐藏 ] 1 Java中的记录器 1.1 Java Lo ...

  2. Java中的正则表达式 - Java Regex示例

    Java中的正则表达式 - Java Regex示例 欢迎使用Java中的正则表达式.它在Java中也称为Regex.当我开始编程时,java正则表达式对我来说是一场噩梦.本教程旨在帮助您掌握Java ...

  3. java中 数组声明,java数组声明格式

    java 声明动态数组,java对象数组详解,java中声明数组,java数组声明格式 Java 中数组的声明一维数组的声明: 在 Java 中,数组是独立的对象,有自身的方法,不是变量的集合. 数组 ...

  4. Java中apple导入那个包_在Java中,由Java编泽器自动导入而无需在程序中用import导入的包是()。A.java.appletB.java.awtC.j...

    在Java中,由Java编泽器自动导入而无需在程序中用import导入的包是().A.java.appletB.java.awtC.j 更多相关问题 问卷星是一个专业.无限制的免费在线问卷调查.测评. ...

  5. java里frame颜色_如何为Java中的窗口(JFrame)添加颜色

    最近一些学习Java的小伙伴,向我请教了一些关于Java图形化界面的问题,以下就是我对Java图形化界面的一些总结. 一:为何J Frame无法显示添加的颜色 public class Login e ...

  6. java中的pane,Java中scroll pane的使用(一)– 动态改变其client的大小 | 学步园

    动态改变scroll pane的client的大小,并达到其滚动条出现当client超出我们设定的view port大小时. package com.han; import java.awt.Bord ...

  7. java中gridlayout合并,java布局之GridLayout

    GridLayout是一种非常简单的布局,它的每个组件的大小都相等.这里不许多说,直接上代码和图片说明 /* * GridLayoutDemo.java requires no other files ...

  8. java中properties作用,java中Properties类的使用

    java中Properties类的使用 在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件). Propert ...

  9. java中使用队列:java.util.Queue

    在java5中新添加了java.util.Queue接口,用以支持队列的常见操作.该接口扩展了java.util.Collection接口. Queue使用时要尽量避免Collection的add() ...

  10. Java中的泛型 --- Java 编程思想

    前言 ​ 我一直都认为泛型是程序语言设计中一个非常基础,重要的概念,Java 中的泛型到底是怎么样的,为什么会有泛型,泛型怎么发展出来的.通透理解泛型是学好基础里面中非常重要的.于是,我对<Ja ...

最新文章

  1. PHP CI框架目录结构及运行机制
  2. 一文搞懂 Prometheus 的直方图
  3. linux内核earlyprink,内核启动参数机制学习笔记
  4. C# Serializable(序列化)
  5. 腾讯旗下网站的很多URL都包含“cgi-bin”,是什么意思?他们后台用什么语言?...
  6. JS~重写alter与confirm,让它们变成fancybox风格
  7. HihoCoder - 1591 锦标赛(最大费用最大流)
  8. [1.1]XMI 与UML结合开发企业应用中业务模型
  9. MFC中CString类字符串与长整型、浮点型、字符数组char数据之间的相互转换
  10. 中南民族大学计算机科学学院转专业,【通知】2018-2019学年学生转专业及专业分流工作...
  11. c# Aspose.Words插入饼图PieChart
  12. win11如何登陆本地用户 windows11登陆本地用户的步骤方法
  13. 解决“Pip - Fatal error in launcher: Unable to create process using... ”
  14. 软件测试整理复习(简答题)转载请经由作者同意
  15. 利用Trie(字典树)实现敏感词过滤算法
  16. 中国一二三四线城市最新划分
  17. #PIPE# PIPE之 形而上
  18. 优秀课程案例:使用Scratch制作贪吃蛇大战游戏
  19. 豆豆趣事[2016年02月]
  20. 【C语言练习——打印空心三角形】

热门文章

  1. (转)向浑水(Muddy Waters Research)学习如何调查公司
  2. 阿里云产品经理吴华剑:SLS 的产品功能与发展历程
  3. 降本增效利器!趣头条 Spark Remote Shuffle Service 最佳实践
  4. 我们该不该在Rust上做点投资?
  5. 【图像重建】基于matlab迭代步长自适应图像超分辨重建【含Matlab源码 048期】
  6. 【DCVRP】基于matlab蚁群算法求解带容量+距离的车辆路径规划问题【含Matlab源码 1038期】
  7. java class getfields_JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
  8. python:sklearn 标签编码(LabelEncoder)
  9. 随手记--关于K-近邻算法
  10. timimg学习数据删了_如何评价Timing这个督促人学习的软件?