- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图做我的计算机科学作业,但当我尝试使用以下方法时我陷入困境。
公共(public)图形创建(int x,int y,int width,int height)
基于此 Graphics 对象创建一个新的 Graphics 对象,但具有新的平移和剪辑区域。
参数:
公共(public)抽象无效翻译(int x,int y)
将图形上下文的原点平移到当前坐标系中的点 (x, y)。
谁能解释并举例说明如何使用它们?
我正在尝试这样做..
public Graphics drawPlayer1()
{
myPencil.up();
myPencil.move(-620,300);
myPencil.down();
myPencil.fillCircle(20);
myPencil.up();
myPencil.move(-590,300);
myPencil.drawString("Player1: " + player1);
p1.create(-620,300,40,40);
return p1;
}//end drawPlayer1
当涉及到 p1.create(-620,300,40,40); 时,它向我抛出了 nullPointerException;
最佳答案
我同意 Andrew 的观点,我从未使用过 Graphics#create(int, int, int, int)
。不过我确实使用Graphics#create
。
基本上,创建方法将创建一个新的图形上下文,它是原始图形上下文的副本。这使您可以在不影响原始文件的情况下操作副本。如果您正在对无法(轻松)撤消的图形执行操作,这一点非常重要。
将图形上下文简单“清零”到新位置。 Swing 绘制过程对其绘制的每个组件执行此操作。基本上,在调用 paint
之前,图形上下文被转换到组件位置,这意味着组件内的所有绘制都是从 0x0
public class TestGraphics01 {
public static void main(String[] args) {
new TestGraphics01();
}
public TestGraphics01() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception ex) {
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new TestGraphicsPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
public class TestGraphicsPane extends JPanel {
@Override
public Dimension getPreferredSize() {
return new Dimension(400, 400);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
FontMetrics fm = g.getFontMetrics();
// This creates a "copy" the graphics context, it's translated
// to the x, y position within the current graphics context
// and has a width and height. If the width or height is outside
// the current graphics context, then it is truncated...
// It's kind of like clip, except what ever you do to this copy
// does not effect the graphics context it came from...
// This would be simular to setting the clipping region, just it
// won't effect the parent Graphics context it was copied from...
Graphics create = g.create(100, 100, 200, 200);
create.setColor(Color.GREEN);
create.fillRect(0, 0, 200, 200);
create.setColor(Color.YELLOW);
create.drawString("I'm inside...", 0, fm.getAscent());
create.dispose();
// But I remain uneffected...
g.drawString("I'm outside...", 0, fm.getAscent());
// I will effect every thing draw afterwards...
g.setColor(Color.RED);
int y = 50 - (fm.getHeight() / 2) + fm.getAscent();
g.translate(50, y);
g.drawString("I'm half way", 0, 0);
// You must reset the translation if you want to reuse the graphics OR
// you didn't create a copy...
g.translate(-50, -y);
y = 350 - (fm.getHeight() / 2) + fm.getAscent();
g.translate(300, y);
g.drawString("I'm half way", 0, 0);
// You must reset the translation if you want to reuse the graphics OR
// you didn't create a copy...
g.translate(-300, -y);
}
}
}
关于java - 图形 - 如何使用方法create(int x, int y, int width, int height)和translate(int x, int y)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088613/
这个问题在这里已经有了答案: How can I vertically align elements in a div? (28 个答案) Vertical Aligned Text and Im
我想做一个像 view0.height = view1.height + view2.height 这样的约束。当 view1.height 或 view2.height 改变时,view0.heig
有人可以解释为什么这个标记: 呈现大约 2x18 的 float div(在 Chrome/Firefox 中)而不是 2x2 div? 即使所有空格都被删除,图像似乎也遵循 font-
我的 HTML 页面上有一些可拉伸(stretch)的元素。 使用这个 CSS .stretchable-element { height: 25%; } 随着浏览器窗口高度的增加,可伸缩元素
我在“developer.android.com”上查看以缩小我的位图文件,但我发现了一件事我不明白。所以我很感激你能给我一点帮助。 这是一个 snippet来自 developer.android.
假设我们有以下设置: .container { background-color: red; width: 500px; min-height: 300px; } .child { b
我遇到了高度错误的问题 $(window).height(); 也有类似的问题 here 就我而言,当我尝试时 $(document).height(); 它似乎返回了正确的结果 窗口高度返回320
我正在尝试使用 javaFX (2.2) 开发桌面应用程序,但我遇到了一些困难,无法真正让它按照我希望的方式运行。作为该框架的新用户,我可能没有按应有的方式使用它... 我想要的是一种仪表板,在 Sc
就这么简单:) 我右边的列动态变化,由于左列的高度设置为 100%,我认为根据 Right_Column 的高度动态修改容器的高度会很好。有小费吗?谢谢:) 最佳答案 如果我正确理解了问题,你可以做这
我有一个 ScrollView(包含 NSTextEditor),其顶部、左侧和右侧约束相对于其容器(主窗口)正确设置为 0。 我无法使其高度为主容器的一半。有什么帮助吗? 最佳答案 如果我理解正确,
这个问题之前曾被问过(Infinite Scroll on Mobile browsers),但没有得到回应。 我正在尝试实现无限滚动。 检查文档是否在底部,导致更多加载的函数是: if ($(win
这个问题在这里已经有了答案: height:100% VS min-height:100% (4 个答案) 关闭 6 年前。
我在尝试解决这个问题时遇到了一些问题。我已经编写了一个 jquery 函数来检测用户何时点击页面底部并触发一个函数。现在,虽然这适用于最常见的屏幕尺寸,但当用户的屏幕太大以至于可以一次看到整个页面时,
如何获得与导航高度(填充)相同的导航高度 ...!? nav { width: 100%; } nav ul { text-align: center; background-
所以,实际上我可能完全想多了,应该放弃最小高度,但我目前有以下 HTML:
我正在阅读 Bootsrap3 文档。我发现这段页脚代码粘在屏幕底部。 html, body { height: 100%; } #wrap { min-height: 100%; height: a
我对容器 div 的高度有疑问。我想 它是 body 的 100%,但不起作用。我添加了 css body height=100% var d = document; $(d).ready(funct
我有一个三部分布局:页眉、内容和页脚。我非常熟悉绝对定位技术;当我希望内容 div 扩展到可用高度的 100% 时,我经常使用它。 在这种情况下,我的问题是我事先不知道页脚的高度,它是根据自己的内容动
在下面的代码中,我尝试实现无限滚动。我遇到的问题是“document.height”和“window.height”返回相同的值。有人可以帮我解决我哪里出错了吗?
我有一个页面布局,其中两个 div 在一行中彼此相邻对齐。一列包含可变长度的文本,第二列包含图像。 标记基本上如下: texttext 我的
我是一名优秀的程序员,十分优秀!