📄 mypaint.java
字号:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;
import java.util.Vector;
/*
*
* @author Alloxa
*/
public class Mypaint extends JFrame implements MouseListener, MouseMotionListener{
private Container container = getContentPane();
private JPanel controlPanel = new JPanel();
private String shapeName[] = {"Line","Rectange","Circle","Word"};
private String fontKind[] = {"Kind1","Kind2","Kind3","Kind4"};
private String input = new String();
private JComboBox drawShape = new JComboBox(shapeName);
private JComboBox wordFont = new JComboBox(fontKind);
private JButton chooser = new JButton("choose color");
private JButton addword = new JButton("addword");
private Font myfont ;
private Color color = Color.lightGray;
public static final int LINES = 0;
public static final int RECTANGE = 1;
public static final int CIRCLE = 2;
public static final int WORD = 3;
int mode = LINES;
int x1,y1;
int x2,y2;
public Mypaint(){
controlPanel.setLayout(
new GridLayout(1,fontKind.length));
controlPanel.add(drawShape);
controlPanel.add(chooser);
controlPanel.add(addword);
controlPanel.add(wordFont);
container.add(controlPanel,BorderLayout.SOUTH);
setSize(400,150);
setVisible(true);
addMouseMotionListener(this);
addMouseListener(this);
drawShape.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent event){
if(event.getStateChange()==ItemEvent.SELECTED)
mode = drawShape.getSelectedIndex();
}});
chooser.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
color = JColorChooser.showDialog(Mypaint.this,"choose a color",color);
}});
addword.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
input=JOptionPane.showInputDialog(input);
}});
wordFont.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent event){
if(event.getStateChange()==ItemEvent.SELECTED)
if(wordFont.getSelectedIndex()==0)
myfont = new Font("serif",Font.BOLD,20);
else if(wordFont.getSelectedIndex()==1)
myfont = new Font("Monospaced",Font.ITALIC,20);
else if(wordFont.getSelectedIndex()==2)
myfont = new Font("SansSerif",Font.PLAIN,20);
else if(wordFont.getSelectedIndex()==3)
myfont = new Font("serif",Font.BOLD+Font.ITALIC,20);
}});
setSize(500,500);
}
public void setDrawMode(int mode) {
switch (mode) {
case LINES:
case RECTANGE:
this.mode = mode;
break;
case CIRCLE:
this.mode = mode;
break;
case WORD:
this.mode = mode;
break;
default:
throw new IllegalArgumentException();
}
}
public void mouseDragged(MouseEvent e) {//没有建立数组||向量 所以这里不能写东西
/* e.consume();
switch (mode) {
case LINES:
x2 = e.getX();
y2 = e.getY();
break;
case RECTANGE:
x2 = e.getX();
y2 = e.getY();
break;
case CIRCLE:
x2 = e.getX();
y2 = e.getY();
break;
default:
x1 = e.getX();
y1 = e.getY();
break;
}
repaint();*/
}
public void mousePressed(MouseEvent e) {
e.consume();
switch (mode) {
case LINES:
x1 = e.getX();
y1 = e.getY();
x2 = -1;
break;
case RECTANGE:
x1 = e.getX();
y1 = e.getY();
x2 = -1;
break;
case CIRCLE:
x1 = e.getX();
y1 = e.getY();
x2 = -1;
break;
default:
x1 = e.getX();
y1 = e.getY();
repaint();
break;
}
}
public void mouseReleased(MouseEvent e) {
e.consume();
x2=e.getX();
y2=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {
}
public void paint(Graphics g) {
switch (mode){
case LINES:
g.setColor(color);
g.drawLine(x1,y1,x2,y2);
break;
case RECTANGE:
g.setColor(color);
g.drawRect(x1,y1,x2-x1,y2-y1);
break;
case CIRCLE:
g.setColor(color);
g.drawOval((x1+x2)/2,(y1+y2)/2,Math.abs(x1-y1),Math.abs(x1-y1));
break;
case WORD:
g.setColor(color);
g.setFont(myfont);
g.drawString(input,x1,y1);
break;
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -