📄 draw.java
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
class Draw{
public static void main(String[] args) {
MyFrameFive myFrame=new MyFrameFive();
myFrame.show();
}
}
class MyFrameFive extends JFrame{
MyFrameFive(){
Container myContentPane=getContentPane();
myContentPane.setLayout(new BorderLayout());
myContentPane.add("North",new MyBoxPanel());
myContentPane.add("Center",new MyJobPanel());
setSize(600,400);
addWindowListener(new QuitWindow());
}
}
class MyBoxPanel extends JPanel implements ActionListener{
private JComboBox typeBox;
private JLabel choiceLabel;
public static int select;
MyBoxPanel(){
choiceLabel=new JLabel("请选择你需要的图形:");
typeBox=new JComboBox();
typeBox.setEditable(false);
typeBox.addItem("线");
typeBox.addItem("矩形");
typeBox.addItem("圆");
typeBox.addItem("椭圆");
typeBox.addActionListener(this);
add(choiceLabel);
add(typeBox);
}
public void actionPerformed(ActionEvent event){
select=typeBox.getSelectedIndex();
}
}
class MyJobPanel extends JPanel implements MouseMotionListener,MouseListener{
private int mousex1,mousey1,mousex2,mousey2;
MyJobPanel(){
setBackground(Color.white);
addMouseMotionListener(this);
addMouseListener(this);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
if(MyBoxPanel.select==0)
g.drawLine(mousex1,mousey1,mousex2,mousey2);
if(MyBoxPanel.select==1){
if((mousex2-mousex1)<0&&(mousey2-mousey1)>0)
g.drawRect(mousex2,mousey1,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
if((mousex2-mousex1)<0&&(mousey2-mousey1)<0)
g.drawRect(mousex2,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
if((mousex2-mousex1)>0&&(mousey2-mousey1)<0)
g.drawRect(mousex1,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
if((mousex2-mousex1)>0&&(mousey2-mousey1)>0)
g.drawRect(mousex1,mousey1,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
}
if(MyBoxPanel.select==2){
int tmp=0;
if(Math.abs(mousex2-mousex1)>Math.abs(mousey2-mousey1))
tmp=Math.abs(mousex2-mousex1);
else
tmp=Math.abs(mousey2-mousey1);
if((mousex2-mousex1)<0&&(mousey2-mousey1)>0)
g.drawOval(mousex2,mousey1,tmp,tmp);
if((mousex2-mousex1)<0&&(mousey2-mousey1)<0)
g.drawOval(mousex2,mousey2,tmp,tmp);
if((mousex2-mousex1)>0&&(mousey2-mousey1)<0)
g.drawOval(mousex1,mousey2,tmp,tmp);
if((mousex2-mousex1)>0&&(mousey2-mousey1)>0)
g.drawOval(mousex1,mousey1,tmp,tmp);
}
if(MyBoxPanel.select==3){
if((mousex2-mousex1)<0&&(mousey2-mousey1)>0)
g.drawOval(mousex2,mousey1,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
if((mousex2-mousex1)<0&&(mousey2-mousey1)<0)
g.drawOval(mousex2,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
if((mousex2-mousex1)>0&&(mousey2-mousey1)<0)
g.drawOval(mousex1,mousey2,Math.abs(mousex2-mousex1),Math.abs(mousey2-mousey1));
else
g.drawOval(mousex1,mousey1,mousex2-mousex1,mousey2-mousey1);
}
}
public void mousePressed(MouseEvent event){
if(event.getModifiers()==InputEvent.BUTTON1_MASK){
mousex1=event.getX();
mousey1=event.getY();
}
}
public void mouseClicked(MouseEvent event){
}
public void mouseReleased(MouseEvent event){
}
public void mouseEntered(MouseEvent event){
}
public void mouseExited(MouseEvent event){
}
public void mouseDragged(MouseEvent event){
if(event.getModifiers()==InputEvent.BUTTON1_MASK){
mousex2=event.getX();
mousey2=event.getY();
repaint();
}
}
public void mouseMoved(MouseEvent event){
}
}
class QuitWindow extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -