drawstring(drawstring)
java中Graphics类drawString()方法问题
你这样的做法很多地方都不e69da 5e 887 aa 323131愚人节2363134313033333333335正确的!比如如果你用的是流布局而你也没有给你的模块的父类传文本得话!那么他的自定义按钮大写是默认为没有文本的大小!就是很小的啦!(不知道你明白没)给你给个例子
导入Java。awt。颜色;
导入Java。awt。光标;
导入Java。awt。维度;
导入Java。awt。流程布局;
导入Java。awt。图形;
导入Java。awt。工具包;
导入Java。awt。事件。动作事件;
导入Java。awt。事件。动作监听器;
导入Java。awt。事件。鼠标事件;
导入Java。awt。事件。鼠标监听器;
导入Java。io。可序列化;
导入javax。挥棒。*;
导入jxl。格式。边框;
publicclassNButton{
publicstaticvoidmain(String[]args){
JFramejf=newJFrame('按钮');
我的按钮我的按钮=新建我的按钮('按钮');
我的纽扣。addactionlistener(newActionListener(){
@覆盖
publicavodactionperformed(action evente){
System.out.println('奶萨倒萨爱上');
});
JF。添加(我的按钮);
JF。设置布局(new flow layout());
JF。设置可见(真);
JF。setdefaultcloseoperation(JFrame .EXIT _ ON _ CLOSE);
jf.setSize(200,200);
JF。setlocationrelativeto(null);
classMybuttonextendsJButton{
privatestaticfinallonserialversionuid=1L;
privateStringstr=new string();
publicMybutton(){
super();
//todo自动生成的constructorstub
publicMybutton(Stringtext){
超级(文字);
维度dimension=this。getpreferredsize();
维度。宽度=尺寸。身高=数学。最大(尺寸。宽度,尺寸。身高);
这个。setpreferredsize(维度);
这个。setborderpainted(false);
这个。setcontentareaffilled(false);
str=文本;
@覆盖
protectedvoidpainporder(图形g){
g。设置颜色(这个。get前台());
g.drawOval(0,15,getSize().width-1,getSize().身高-30);
@覆盖
protectedvoidpaintComponent(图形g){
超级棒。油漆成分(g);
if(this.getModel().isArmed()){
g.setColor(颜色。蓝色);
}否则{
g.setColor(颜色。白色);
}
g.fillOval(0,15,this.getWidth(),this。getheight()-30);
g.setColor(颜色。黑色);
g。拉带(str,20,40);
}626
16964757a686964616fe59b9ee7ad9431333337396332DrawString(String, Font, Brush, PointF)在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF)
在指定矩形并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, PointF, StringFormat)
使用指定 StringFormat 的格式化特性,用指定的 Brush 和 Font 对象在指定的位置绘制指定的文本字符串。
DrawString(String, Font, Brush, RectangleF, StringFormat)
使用指定 StringFormat 的格式化特性,用指定的 Brush 和 Font 对象在指定的矩形绘制指定的文本字符串。
DrawString(String, Font, Brush, Single, Single)
在指定位置并且用指定的 Brush 和 Font 对象绘制指定的文本字符串。
DrawString(String, Font, Brush, Single, Single, StringFormat)
使用指定 StringFormat 的格式化特性,用指定的 Brush 和 Font 对象在指定的位置绘制指定的文本字符串。drawstring
public abstract void drawstring(string str,
int x,
int y)
使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。最左侧字符的基线位于此图形上下文坐标系统的 (x, y) 位置处。
str - 要绘制的 string。
x - x 坐标。
y - y 坐标。
另请参见:
drawbytes(byte[], int, int, int, int), drawchars(char[], int, int, int, int)
--------------------------------------------------------------------------------
drawstring
public abstract void drawstring(attributedcharacteriterator iterator,
int x,
int y)
使用此图形上下文的当前颜色绘制由指定迭代器给定的文本。迭代器必须为每个字符指定字体。最左侧字符的基线位于此图形上下文坐标系统的 (x, y) 位置处。
iterator - 要绘制其文本的迭代器
x - x 坐标。
y - y 坐标。
另请参见:
drawbytes(byte[], int, int, int, int), drawchars(char[], int, int, int, int)g.setBgColor(Color.BLACK); //设置背景色
opencv使用drawString()函数与drawButton()函数应该包含的头文件是什么?
这两个应该不是openCV里面的函数,会不会是别人自己定义的函数然后封装了getTextSize()、putText()等相应的函数,你找找看看,下面是我见过的这两个函数:
Rect drawString(Mat img, string text, Point coord, Scalar color, float fontScale = 0.6f, int thickness = 1, int fontFace = FONT_HERSHEY_COMPLEX)
//获取文本大小和基线
int baseline=0;
Size textSize = getTextSize(text, fontFace, fontScale, thickness, &baseline);
baseline += thickness;
// 为左/右或上/下调整校正坐标
if (coord.y >= 0) {
//图像左上角的文本的左上角的坐标,因此按行向下移动
coord.y += textSize.height;
else {
//图像左下角的文本的左下角的坐标,因此从底部上来
coord.y += img.rows - baseline + 1;
// 如果希望变成右侧调整
if (coord.x < 0) {
coord.x += img.cols - textSize.width + 1;
// 获取文本的边界矩形
Rect boundingRect = Rect(coord.x, coord.y - textSize.height, textSize.width, baseline + textSize.height);
// 画出平滑的文本
putText(img, text, coord, fontFace, fontScale, color, thickness, CV_AA);
//让用户知道文本的多大,以防他们想安排些事情
return boundingRect;
Rect drawButton(Mat img, string text, Point coord, int minWidth = 0)
int B = 10;
Point textCoord = Point(coord.x + B, coord.y + B);
// 获取文本边界矩形
Rect rcText = drawString(img, text, textCoord, CV_RGB(0,0,0));
// 在文本周围画一个填充的矩形
Rect rcButton = Rect(rcText.x - B, rcText.y - B, rcText.width + 2*B, rcText.height + 2*B);
// 设置按钮的最小宽度
if (rcButton.width < minWidth)
rcButton.width = minWidth;
// 创建一个半透膜的白色矩形
Mat matButton = img(rcButton);
matButton += CV_RGB(90, 90, 90);
//画一个非透明的白色边界
rectangle(img, rcButton, CV_RGB(200,200,200), 1, CV_AA);
//使用抗锯齿,画一个实际用来显示的文本
drawString(img, text, textCoord, CV_RGB(10,55,20));
return rcButton;
搜一下:opencv使用drawString()函数与drawButton()函数应该包含的头文件是什么?
本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容请联系我们,一经查实,本站将立刻删除。
转载联系作者并注明出处:https://www.blogone.net/qiu/678.html
标签:
相关文章