Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Button 自定义按钮字段blackberry:onfocus、onfocus_Button_Blackberry - Fatal编程技术网

Button 自定义按钮字段blackberry:onfocus、onfocus

Button 自定义按钮字段blackberry:onfocus、onfocus,button,blackberry,Button,Blackberry,我想更改背景按钮的颜色和文本焦点的颜色 我怎样才能做到 class RoundedRectField扩展字段{ //布局值 私有静态最终整数曲线_X=12;//曲线的X轴插入 私有静态最终整数曲线_Y=12;//曲线的Y轴插入 私有静态final int MARGIN=2;//组件边界内的空间 //静态颜色 私有静态最终整型文本\u COLOR=0xFFFFFF;//白色 私有静态最终整型边框\u COLOR=0xFF8000;//深灰色 私有静态最终整型背景色\u COLOR=0xFFFFFF

我想更改背景按钮的颜色和文本焦点的颜色 我怎样才能做到

class RoundedRectField扩展字段{
//布局值
私有静态最终整数曲线_X=12;//曲线的X轴插入
私有静态最终整数曲线_Y=12;//曲线的Y轴插入
私有静态final int MARGIN=2;//组件边界内的空间
//静态颜色
私有静态最终整型文本\u COLOR=0xFFFFFF;//白色
私有静态最终整型边框\u COLOR=0xFF8000;//深灰色
私有静态最终整型背景色\u COLOR=0xFFFFFF;//白色
私有静态最终整型文本\u颜色\u选定=0xFF6DB6;
专用静态最终整型边框颜色选择=0xFF8000;
专用静态最终整型背景颜色选择=0xCCCC;
布尔值_focus=false;
私有静态字符串文本按钮;
//圆形矩形的点类型数组。每个点类型
//对应于颜色数组中的一种颜色
//空格表示上半部分点之间的分隔
//矩形和底部的那些。
私有静态最终字节[]路径\点\类型={
Graphics.CURVEDPATH\u END\u POINT,
Graphics.CURVEDPATH_二次曲线_BEZIER_控制点,
Graphics.CURVEDPATH\u END\u POINT,Graphics.CURVEDPATH\u END\u POINT,
Graphics.CURVEDPATH_二次曲线_BEZIER_控制点,
Graphics.CURVEDPATH\u END\u POINT,
Graphics.CURVEDPATH\u END\u POINT,
Graphics.CURVEDPATH_二次曲线_BEZIER_控制点,
Graphics.CURVEDPATH\u END\u POINT,Graphics.CURVEDPATH\u END\u POINT,
Graphics.CURVEDPATH_二次曲线_BEZIER_控制点,
Graphics.CURVEDPATH\u END\u POINT,};
//圆形矩形渐变的颜色数组。每种颜色对应
//指向点类型数组中的一个点。顶部为灯光,底部为黑色。
私有静态最终int[]路径_梯度={0xFF8000,0xFF8000,0xFF8000,
0xFF8000,0xFF8000,0xFF8000,
0xFC0500、0xFC0500、0xFC0500、0xFC0500、0xFC0500、0xFC0500、0xFC0500};
//在给定的空间中居中放置只读字段。
公共RoundedRectField(字符串文本_按钮){
超级(字段|输入|字段|输入|只读);
this.text\u按钮=text\u按钮;
}
//此演示中的此字段具有固定高度。
public int getPreferredHeight(){
返回70;
}
//此演示中的此字段具有固定宽度。
public int getPreferredWidth(){
返回240;
}
//当要求布局时,返回我们的高度和宽度。
受保护的空心布局(内部宽度、内部高度){
setExtent(getPreferredWidth(),getPreferredHeight());
}
//当需要绘画时,自己动手。
受保护的空心漆(图g){
//将此区域清除为完全不透明的白色背景。
g、 清除();
g、 setGlobalAlpha(255);
g、 setBackgroundColor(背景色);
//在我们的利润范围内。
int-width=getPreferredWidth()-(边距*2);
int height=getPreferredHeight()-(边距*2);
//计算圆角矩形的路径。第一个点(0)处于打开状态
//左派
//侧边,左上角曲线开始的右侧。因此
//左上角
//角点是点1。这些点对应于我们的静态数组。
int[]xPts={0,0,曲线_X,宽度-曲线_X,宽度,宽度,
宽度,宽度-曲线,曲线,0,0};
int[]yPts={CURVE_Y,0,0,0,0,CURVE_Y,height-CURVE_Y,
高度,高度,高度,高度,高度-曲线_Y};
//绘制渐变填充。
g、 DrawShadedFilled路径(XPT、YPT、路径点类型、路径梯度、,
无效);
//为轮廓绘制一个圆角矩形。
//我觉得drawRoundRect看起来比drawPathOutline好。
g、 设置颜色(边框颜色);
g、 drawRoundRect(0,0,宽度,高度,曲线X*2,曲线Y*2);
//在中间放置一些文本。
Font Font=Font.GETDAULT().derive(Font.PLAIN,9,Ui.UNITS\u pt);
int textWidth=font.getAdvance(文本按钮);
int textHeight=font.getHeight();
g、 设置颜色(文本颜色);
g、 setFont(字体);
g、 drawText(文本按钮)(宽度/2)-(文本宽度/2)-边距,
(高度/2)-(文本高度/2)-边距);
}
受保护的空对焦(整数方向){
_焦点=真;
对话框。警报(“dcd”);
使无效();
超级聚焦(方向);
}
受保护的无效onnfocus(){
_焦点=错误;
使无效();
super.onnfocus();
}
}

你可以用几种方法来做。一种流行的方法是在
paint()
方法中提供自定义焦点图形,您已经覆盖了该方法

您应该能够做到这一点(我假设您声明了为聚焦状态选择的
\u
颜色):

if(isFocus()){
g、 setBackgroundColor(选择背景颜色);
否则{
g、 setBackgroundColor(背景色);
}

if(isFocus()){
g、 设置颜色(已选择文本颜色);
}否则{
g、 设置颜色(文本颜色);
}
这些行位于
paint()
,就在您当前调用
g.setBackgroundColor
g.setColor(TEXT\u COLOR)
的地方

然后,您将重写
drawFocus()
,而不执行任何操作,因为焦点图形是在
paint()
中处理的:

protectedvoiddrawfocus(图形,布尔值开启){
//重写超类实现而不执行任何操作
}
最后,您需要使您的
字段
可聚焦,以便始终接收焦点。您可以这样做:

public RoundedRectField(字符串文本_按钮)