java translate_java – 当使用translate()方法时,JPanel中的Tit...
您已在GPanel的实例上调用setBorder(),然后在后者的paintComponent()实现中修改了图形上下文的变换.边界不知道这一点,所以显示的结果完全是预期的.相反,请遵循setBorder()的父JComponent实现建议:“将组件放在JPanel中并在JPanel上设置边框.”相关示例显示为here.
在下面的变化中,
>封闭的bPanel现在具有Border,封闭的gPanel可以安全地操作图形上下文.
>在translate()之前,红点以原点为中心;在translate()之后,蓝点以原点为中心,但原点已移动.
>当你真的想要覆盖getPreferredSize()时,不要使用setPreferredSize().
>不要不必要地扩展JFrame.
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
class GTest {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
GPanel gPanel = new GPanel();
JPanel bPanel = new JPanel();
bPanel.setBorder(BorderFactory.createTitledBorder("Title"));
bPanel.add(gPanel);
f.add(bPanel);
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
private static class GPanel extends JPanel {
private static final int N = 16;
private void doDrawing(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(Color.red);
g.fillOval(-N, -N, 2 * N, 2 * N);
g2.translate(getWidth() / 2, getHeight() / 2);
g2.setPaint(Color.blue);
g.fillOval(-N, -N, 2 * N, 2 * N);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(256, 256);
}
}
}
java translate_java – 当使用translate()方法时,JPanel中的Tit...相关推荐
- java两个return_关于java:调用另一个方法时return语句不起作用
我最近开始尝试使用return语句,对此我有一个小疑问-当我有一个调用另一个方法的方法时,将显示我正在调用的方法的return语句吗? 让我们举例说明一下 /** Program to test re ...
- java 父类子类有同名方法时如何调用
父类引用默认调用子类重写的方法 如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法. 父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间 ...
- java私有属性和私有方法_Java 9中什么是私有的?
java私有属性和私有方法 在进行面试时,我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么. 他们对此有所了解,足以应付日常编码,但还远远不够. 这不成问题. 足够了解就足够了 ...
- java 继承 实现 会重写 方法吗_java 中继承,组合,重载,重写的实现原理 (转)...
我们知道,继承,组合,重载,重写是java语言的面向对象实现的基本特征. 那么在java内部,究竟是如何实现这些面对对象的基本特征的呢? 继承和组合是面向对象中代码复用的主要实现方式,他们可以达到类似 ...
- java怎么传入参数到方法当中_java中方法传入参数时:值传递还是址传递?
JAVA中的数据类型有两大类型: ① 基本数据类型:逻辑型(boolean).文本型(char).整数型(byte.short.int.long).浮点型(float.double) ② 引用数据类型 ...
- Java解决递归栈溢出_方法递归调用中java栈溢出的问题 及 解答 | 学步园
为什么运行如下程序 , 方法sum2 不会导致栈溢出, 方法sum 会导致栈溢出? --------output----------- 32004000 java.lang.StackOverflow ...
- Java在上传或下载时header中Content-Disposition的作用以及Content-disposition中Attachment和inline的区别
Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件.当 Internet Explorer 接收到头时,它会激活文件下载对话框, ...
- java 子类的同名方法_java 父类子类有同名方法时如何调用的实现
父类引用默认调用子类重写的方法 如果父类的引用p指向了子类的实例,则通过这个引用p访问同名方法时,调用的是子类重写的方法. 父类引用p可以指向不同的子类,调用不同子类重写的不同的同名方法,进而达到类间 ...
- 在LINQ to SQL中使用Translate方法以及修改查询用SQL
目前LINQ to SQL的资料不多--老赵的意思是,目前能找到的资料都难以摆脱"官方用法"的"阴影".LINQ to SQL最权威的资料自然是MSDN,但是M ...
- Java String intern()方法
引言 在 JAVA 语言中有8中基本类型和一种比较特殊的类型String.这些类型为了使他们在运行过程中速度更快,更节省内存,都提供了一种常量池的概念.常量池就类似一个JAVA系统级别提供的缓存. 8 ...
最新文章
- 雍正继承帝位,给职场中的我们的启示 --- 我看电视剧《雍正王朝》
- Java学习笔记30
- DialogFragment源码分析
- 修改sga后oracle打不开的解决方法
- Python爬虫-利用代理IP访问网页(requests)
- VS2022+.NET6 RC1+C#10,.NET开发起飞
- android v4包自动导入吧,android如何导入v4包的源码
- html5 figure 标签
- java(娄娄)的表白代码
- 化繁从简,别让思维打了结
- 2009年最值得注意炒作题材
- 荒野行动pc版显示连接不到服务器,荒野行动PC版连接不上服务器怎么办 进不去游戏...
- 解决Cipher Suites导致的“未能创建 SSL/TLS 安全通道”异常问题
- 2022081班李亚楠20220902
- 记一次图片编辑工具pinta二进制包的安装踩坑过程
- 【读书笔记】销售运营-策略制定的6大原则及5个常用工具
- Java实现二阶魔方旋转
- mysql系统设计论文_毕业论文管理系统的设计与实现(MyEclipse,MySQL)
- 攻防世界007 伪造xff_referer
- php fpm iamp,基于IAMP的WEB安全模型