62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MousePaint extends JFrame{
private JButton redButton = new JButton("RED");
private JButton blackButton = new JButton("BLACK");
private JButton greenButton = new JButton("Green");
private Graphics g;
public MousePaint(){
JPanel pCenter = new JPanel();
JPanel pRight = new JPanel();
pCenter.setLayout(new BorderLayout());
pCenter.add(new MousePanel(),BorderLayout.CENTER);
pRight.setLayout(new GridLayout(0,1));
pRight.add( redButton);
pRight.add( blackButton);
pRight.add( greenButton);
getContentPane().setLayout(new BorderLayout());
getContentPane().add(pCenter,BorderLayout.CENTER);
getContentPane().add(pRight,BorderLayout.EAST);
buttonAdd();
}
private void buttonAdd(){
ButtonListener buttonListener = new ButtonListener();
redButton.addActionListener(buttonListener);
blackButton.addActionListener(buttonListener);
greenButton.addActionListener(buttonListener);
}
class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSource() == redButton ){
g.setColor(Color.RED);
}
if(e.getSource() == blackButton ){
g.setColor(Color.BLACK);
}
if(e.getSource() == greenButton ){
g.setColor(Color.GREEN);
}
}
}
class MousePanel extends JPanel
implements MouseListener,MouseMotionListener{
final int CIRCLESIZE = 100;
private Point lineStart = new Point(0,0);
public MousePanel(){
addMouseListener(this);
addMouseMotionListener(this);
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mousePressed(MouseEvent e){
lineStart.move(e.getX(),e.getY());
}
public void mouseDragged(MouseEvent e){
g = getGraphics();
if(e.isMetaDown()){//right button
g.setColor(getBackground());
g.fillOval(e.getX()-CIRCLESIZE/4, e.getY()-CIRCLESIZE/4, CIRCLESIZE/2, CIRCLESIZE/2);
}
else{
g.setColor(Color.BLACK);
g.drawLine(lineStart.x, lineStart.y, e.getX(), e.getY());
}
lineStart.move(e.getX(), e.getY());
g.dispose();
}
public void mouseMoved(MouseEvent e){
}
}
public static void main(String[] args){
MousePaint frame = new MousePaint();
// frame.pack();
frame.setSize(400,400);
frame.setTitle("MousePaint");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.util.Random;
public class Test extends JPanel{
Random r = new Random();
//重画的线程
Thread t = new Thread(new Runnable() {
public void run() {
while(true) {
repaint();
try {
Thread.sleep(100);
} catch(InterruptedException e) {
}
}
}
});
//重写父类的paintComponent方法
protected void paintComponent(Graphics g) {
g.setColor(new Color(r.nextInt(100),r.nextInt(100),r.nextInt(100)));
g.fillRect(10,10,400,400);
}
public static void main(String args[]) {
Test t1 = new Test();
JFrame f = new JFrame();
f.setBounds(100,100,500,500);
f.setVisible(true);
t1.setBounds(100,100,500,500);
f.add(t1);
t1.t.start();
}
}
Thread t = new Thread(new Runnable() {
public void run() {
while(true) {
repaint();
try {
Thread.sleep(100);
} catch(InterruptedException e) {
}
}
}
});