- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这超出了我的范围(请原谅,已经晚了)。我正在对 WindowsSliderUI 进行子类化,因为我希望它画出更大的拇指(这是正确的词吗?)(这是有效的)并且还在其上方显示 slider 的值(例如,gtk 外观和感觉确实如此) )(那坏了)。我正在覆盖 paint() 方法,目前它看起来像这样:(它很长,我的更改接近底部):
Rectangle knobBounds = thumbRect;
int w = knobBounds.width;
int h = knobBounds.height;
g.translate(knobBounds.x, knobBounds.y);
if ( slider.isEnabled() ) {
g.setColor(slider.getBackground());
}
else {
g.setColor(slider.getBackground().darker());
}
Boolean paintThumbArrowShape =
(Boolean)slider.getClientProperty("Slider.paintThumbArrowShape");
if ((!slider.getPaintTicks() && paintThumbArrowShape == null) ||
paintThumbArrowShape == Boolean.FALSE) {
// "plain" version
g.fillRect(0, 0, w, h);
//THE ONES THAT MATTER
g.setColor(Color.BLACK);
String val = slider.getValue()+"";
g.drawString(val, 0, 0);
g.setColor(Color.RED);
g.drawLine(0, 0, 30, 8);
//END
g.setColor(Color.black);
g.drawLine(0, h-1, w-1, h-1);
g.drawLine(w-1, 0, w-1, h-1);
g.setColor(getHighlightColor());
g.drawLine(0, 0, 0, h-2);
g.drawLine(1, 0, w-2, 0);
g.setColor(getShadowColor());
g.drawLine(1, h-2, w-2, h-2);
g.drawLine(w-2, 1, w-2, h-3);
}
我想要的只是让值显示在拇指上方。然而,现在发生的是字符串最初显示,但是当我拖动 slider 时,它会停留在同一个位置(不改变值)直到我释放鼠标按钮,此时它会在正确的位置重新绘制值(value)。为了让我的头脑变得更有趣,drawLine() 方法工作正常 - 当我拖动它时,线总是在拇指上。现在,这可能是一个微不足道的错误(我真的不行,累了),但请帮我找到它。请注意,如果您看到解决整个问题的更好方法,也请告诉我。正如我所说,我真的不擅长这个,而且我倾向于把事情弄得比实际情况更复杂。
非常感谢
最佳答案
我不知道完整的答案,但是你调用
g.drawString(val, 0, 0);
看起来很狡猾。您指定给 drawString 的坐标是字符串中最左边字符的基线,而不是字符串的左上角。通常像您这样的调用不会出现任何结果,因为所有或大部分字符串都绘制在裁剪矩形之外。
也许你的意思是这样的:
final int height = g.getFontMetrics().getAscent();
g.drawString(s, 0, height);
关于java - 为什么 graphics.drawString() 不重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1376759/
使用 Graphics.DrawString 有什么缺点吗?要将一堆(相当静态的)文本渲染到屏幕外位图,请将其转换为 Texture2D一次,然后只需调用 SpriteBatch.Draw ,而不是使
我上传了一个带有 jpg 扩展名的图像,并在 .NET Web 应用程序中使用 Graphics.DrawString 在照片上添加了文本。然后,如果我应用其他编辑工具(例如旋转图像),添加的文本会变
我正在尝试创建一个带有一些文本的测试窗口,当我运行代码时,它不会绘制字符串。我指定了它的颜色。有人可以帮我解决这个问题吗? import javax.swing.*; import java.awt.
当我在 Eclipse 中运行此代码时,我在新窗口中打印了字符串和行,但它不是一个空白窗口,而是我当前窗口的屏幕截图,设置为我声明的大小。 /image/8KFU0.png 对我做错了什么有什么建议吗
我正在尝试制作这个 GUI,其中有一个文本字段(下面的变量查询),并且如果 GUI 注意到按下了某个键,它将绘制出输入到文本字段中的字符串。但是,如果我将字符串 str 初始化为“”,它在 GUI 上
我为了好玩而制作了一个随机行生成器,当我运行该程序时,“Y(结束):”字符串看起来很奇怪。数字显示为矩形符号,没有任何意义。 这是我的代码: public class LineFractal exte
我有一个数据库,所有值都存储在一个表中。我想使用 drawString() 方法从表中打印一个名称。我创建了一个结果集和数组列表。有什么方法可以在 drawString 方法中从数据库传递字符串??
就目前情况而言,我正在尝试将组件上的字符串绘制到框架中,SSCCE 将如下所示: // The component class through which I draw the string! pac
我正在使用drawString()在字符串上写入文本,但没有显示任何内容。我将颜色设置为白色并将坐标设置为(100,100)。我还有什么做错的吗? import java.awt.Color; imp
我正在尝试制作一个数字时钟,然后添加到 JPanel,现在当我在 taskPerformer 方法之外调用 DrawString 时它绘制但在内部时,它不绘制字符串!为什么会这样,我将如何实现这个类以
我有一个 Jpanel,例如宽度为 500,高度为 100。我有计算屏幕垂直中心 (y) 和水平中心 (x) 的公式。我用它来 drawString(myText, x, y) 但它将文本写在 jpa
我想使用 Graphics 和字符串外的矩形边框绘制字符串。 这是我已经在做的: public void paint(Graphics g) { Graphics2D g2d
我有一个 JPanel 对象,我将其用作绘制矩形的 Canvas 并调用 updateString(String c, int x, int) 方法来每当我在 main 中调用该方法时,绘制一个 St
我试图在图像上从右上角向左下角绘制文本。我的代码弄乱了拉绳的定位。到目前为止,这段代码是这样绘制的,但我需要帮助在这些红线之间绘制文本。 string img_src = "F:\\blank_img
我正在使用 C# 为 Windows Mobile 应用程序创建 fatal error 对话框。问题是当我尝试使用 DrawString 绘制堆栈跟踪时,一半的堆栈跟踪被剪掉了,因为 DrawStr
在我将一个字符串传递给 Graphics.DrawString() 之前,我想知道每个字符的确切位置 - 不仅仅是它的偏移量和宽度,还有它的带有上升/下降的精确边界框,以便我可以在字符级别进行碰撞检测
我有一个关于 drawString 函数质量的问题,目前我有这张图片: 基本上,您在底部中间看到的是一张按其大小的 125% 绘制的卡片。背景中的卡片大小分别为 50% 和 25%。 但是,我注意到描
在 Paint XP 或 Paint Windows 8 中,当您书写文本时,程序会自动提高字体质量(至少对于财务打印机而言)。我想知道如何使用下面的相同 Java 代码执行此操作。 首先,看这张图片
我想使用 在我的图形实例中编写垂直文本拉绳 . 我的代码是这样的: var graph = Graphics.FromImage(map); 我从数据库中阅读了文本及其位置: graph.DrawSt
我正在开发 .net 3.5 Win Forms 程序,但遇到了文本绘制的“有趣”问题。 我正在实现一个文本编辑控件,它使用 DrawString() 和 StringFormat.GenericTy
我是一名优秀的程序员,十分优秀!