当我点击一个形状时,为了显示"选择",我想调用一个方法drawSelected
来重新绘制形状以显示它已被选中。这样的事情:https://gyazo.com/6e115bdca55aaecd70ebada7e046475d以及方形部分如何变厚。
为了做到这一点,我需要一个边框,我能够通过这样做来弄清楚如何做:
// Set paint to the random color
g2.setPaint(getColor());
g2.fill(rectangle);
// Set the border of shape to black
g2.setPaint(Color.black);
g2.draw(rectangle);
但现在当我点击一个矩形时,显示选择的方法仍然使用平移,我得到了这个:https://gyazo.com/07857f6782c3a32dc90946e79736374d只有顶部和左边变厚。
我知道底部和右边也正在绘制,因为它们填充了另一种颜色,它们与之前的矩形重叠,所以你不会看到它。
我的问题是,如何将边框的粗细更改为哪里而不是平移形状,我可以用较粗的边框重新绘制形状以显示选择?
答案 0 :(得分:1)
正如您所说,最好的方法是使用较粗的边框重绘:
void computeAndPrint()
{
int add,sub,mul,dd;
int add1,sub1,mul1,dd1;
int a,b,c,d;
printf("\n");
a=input("Please enter the numerator for your first equation");
b=input("Please enter the denominator for your first equation");
c=input("Please enter the numerator for your second equation");
d=input("Please enter the denominator for your second equation");
add=(a*d+b*c);
add1=(b*d);
int fac = gcd(add, add1);
add /=fac;
add1 /=fac;
printf("\nThe sum of your fractions is: %d/%d",add,add1);
sub=(a*d-b*c);
sub1=(b*d);
int red = gcd(sub, sub1);
sub /=red;
sub1 /=red;
printf("\nThe difference of your fractions is: %d/%d",sub,sub1);
mul=(a*c);
mul1=(b*d);
int red1 = gcd(mul, mul1);
mul /=red1;
mul1 /=red1;
printf("\nThe product of your fractions is: %d/%d",mul,mul1);
dd=(a*d);
dd1=(b*c);
int red2 = gcd(dd, dd1);
dd /=red2;
dd1 /=red2;
printf("\nThe quotient of your fractions is: %d/%d",dd,dd1);
printf("\n");
}
int main()
{
while ( 1 )
{
computeAndPrint();
}
return 0;
}