logo - 刷刷题
下载APP
【简答题】

本题的功能是对图形进行操作,包括旋转、移位、放大和剪切。窗口中有4个单选按钮和一个图形面板,图形面板中有一个矩形和该矩形移位操作后的图形,任选其中一个单选按钮,则图形面板中将显示该操作后的图形。单选按钮,则图形面板中将显示该操作后的图形。
import java. awt. * ;
import java. awt. . * ;
import java. awt. geom. * ;
import java. util. * ;
import javax. swing. * ;
public class java3

public static void main(String[] args)

JFrame frame=new TransformTestFrame();
frame. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
frame. show();


class TransformTest extends JFrame

public TransformTestFrame()

setTitle("java3");
setSize(WIDTH, HEIGHT);
Container contentPane=getContentPane();
canvas=new TransformPanel();
contentPane. add(canvas, BorderLayout. CENTER);
JPanel buttonPanel=new JPanel();
ButtonGroup group=new ButtonGroup();
JRadioButton rotateButton
=new JRadioButton("旋转", true);
buttonPanel. add(rotateButton);
group. add(rotateButton);
rotateButton. addActionListener(new
ActionListener()

public void actionPerformed(Action )

canvas. setRotate();

);
JRadioButton translateButton
=new JRadioButton("移位", false);
buttonPanel. add (translateButton);
group. add(translateButton);
translateButton. addActionListener (new
ActionListener()

public void actionPerformed(Action )

canvas. setTranslate();

);
JRadioButton scaleButton
=new JRadioButton("放大", false);
buttonPanel. add(scaleButton);
group. add(scaleButton);
scaleButton. addActionListener(new
ActionListener()

public void actionPerformed(Action )

canvas. setScale();

);
JRadioButton shearButton
=new JRadioButton("剪切", false);
buttonPanel. add(shearButton);
group. add(shearButton);
shearButton. addActionListener(new
ActionListener()

public void actionPerformed(Aetion )

canvas. setShear();

);
contentPane. add(buttonPanel. BorderLayout. NORTH);

private TransformPanel canvas;
private static final int WIDTH=300;
private static final int HEIGHT=300;

class TransformPanel extend JPanel

public TransformPanel()

square = new Rectangle2D. Double(-50,-50,100,100);
t=new AffineTransform();
setRotate();

public void paintComponent()

super. paintComponent(g);
Graphics2D g2=(Graphics2D)g;
g2. translate(getWidth()/2, getHeight()/2);
g2. setPaint(Color, gray);
g2. draw(square);
g2. transform(t);
g2. setPaint(Color. black);
g2. draw(square);

public void setRotate()

t. setToRotation(Math. toRadians(30));
repaint();

public void setTranslate()

t. setToTranslation(20,15);
repaint();

public void setScale()

t. setToScale(2.0,1.5);
repaint();

public void setShear()

t. setToShear(-0.2,0);
repaint();
private Rectangle2D square;
private AffineTransform t;

举报
参考答案:
参考解析:
.
刷刷题刷刷变学霸
举一反三

【单选题】在二个框架Frame中各有一组单选按钮OptionButton,其作用为()。

A.
两组单选按钮中只有一个能被选中
B.
因有两组单选按钮,无一可被选中
C.
两组单选按钮中各有一个能被选中
D.
两组单选按钮中各有一个以上的能被选中

【单选题】要使两个单选按钮属于同一个框架,正确的操作是

A.
先画一个框架,再在框架中画两个单选按钮
B.
先画一个框架,再在框架外画两个单选按钮,然后把单远按钮拖到框架中
C.
先画两个单选按钮,再画框架将单选按钮框起来
D.
以上三种方法都正确

【单选题】当单击了单选按钮控件后,下列说法正确的是()

A.
只执行Click事件
B.
只执行GetFocus
C.
既执行事件Click,也执行事件GetFocus
D.
具体执行哪个事件要在程序或属性中设定

【单选题】插入单选按钮的HTML代码为()。

A.
<inputtype=“reset”/> 
B.
<inputtype=“radio”/> 
C.
<inputtype=“password”/> 
D.
<inputtype=“checkbox”/>
相关题目:
【单选题】在二个框架Frame中各有一组单选按钮OptionButton,其作用为()。
A.
两组单选按钮中只有一个能被选中
B.
因有两组单选按钮,无一可被选中
C.
两组单选按钮中各有一个能被选中
D.
两组单选按钮中各有一个以上的能被选中
【单选题】要使两个单选按钮属于同一个框架,正确的操作是
A.
先画一个框架,再在框架中画两个单选按钮
B.
先画一个框架,再在框架外画两个单选按钮,然后把单远按钮拖到框架中
C.
先画两个单选按钮,再画框架将单选按钮框起来
D.
以上三种方法都正确
【单选题】当单击了单选按钮控件后,下列说法正确的是()
A.
只执行Click事件
B.
只执行GetFocus
C.
既执行事件Click,也执行事件GetFocus
D.
具体执行哪个事件要在程序或属性中设定
【单选题】插入单选按钮的HTML代码为()。
A.
<inputtype=“reset”/> 
B.
<inputtype=“radio”/> 
C.
<inputtype=“password”/> 
D.
<inputtype=“checkbox”/>