import javax.swing.*;
import java.awt.*;
class LayoutTest1 extends JFrame{
private JPanel jpl = new JPanel();
public LayoutTest1(){
FlowLayout fl = new FlowLayout(FlowLayout.LEFT, 20, 50);
jpl.setLayout(fl);
JButton[] bts = new JButton[10];
for(int i=0; i<10; i++){
bts[i] = new JButton("按钮"+i);
jpl.add(bts[i]);
}
this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public static void main (String[] args) {
new LayoutTest1();
}
}
package frame;
import javax.swing.*;
import java.awt.*;
class Test extends JFrame{
private JPanel jpl = new JPanel();
public Test(){
jpl.setLayout(new GridLayout(6,4,5,5));
JButton[] bts = new JButton[24];
for(int i=0; i<24; i++){
bts[i] = new JButton("按钮"+i);
jpl.add(bts[i]);
}
this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public static void main (String[] args) {
new Test();
}
}
package frame;
import javax.swing.*;
import java.awt.*;
class Test extends JFrame{
private JPanel jpl = new JPanel();
public Test(){
jpl.setLayout(new GridLayout(8,8));
JPanel[][] pls = new JPanel[8][8];
for(int i=0; i<8; i++){
for(int j=0; j<8; j++){
pls[i][j] = new JPanel();
if((i+j)%2==0){
pls[i][j].setBackground(Color.white);
}else{
pls[i][j].setBackground(Color.black);
}
jpl.add(pls[i][j]);
}
}
this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public static void main (String[] args) {
new Test();
}
}
import javax.swing.*;
import java.awt.*;
class LayoutTest1 extends JFrame{
private JPanel jpl = new JPanel();
public LayoutTest1(){
jpl.setLayout(new BorderLayout());
jpl.add(new JButton("按钮东"), BorderLayout.EAST);
jpl.add(new JButton("按钮西"), BorderLayout.WEST);
jpl.add(new JButton("按钮南"), BorderLayout.SOUTH);
jpl.add(new JButton("按钮北"), BorderLayout.NORTH);
jpl.add(new JButton("按钮中"), BorderLayout.CENTER);
this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public static void main (String[] args) {
new LayoutTest1();
}
}
import javax.swing.*;
import java.awt.*;
class LayoutTest1 extends JFrame{
private JPanel jpl = new JPanel();
public LayoutTest1(){
jpl.setLayout(null);
JButton jbt = new JButton("按钮");
jbt.setLocation(300,200);
jbt.setSize(200,400);
jpl.add(jbt);
this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public static void main (String[] args) {
new LayoutTest1();
}
}
——————习题——————
1、界面上一副图片,鼠标进入图片,图片自动避开到另一个地方
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class LayoutTest1 extends JFrame implements MouseListener{
private JPanel jpl = new JPanel();
private Icon ico = new ImageIcon("img.jpg");
private JLabel jlb = new JLabel(ico);
public LayoutTest1(){
jlb.addMouseListener(this);
jpl.setLayout(null);
jlb.setLocation(300,200);
jlb.setSize(ico.getIconWidth(),ico.getIconHeight());
jpl.add(jlb); this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {
int X = (int)(Math.random() * 800);
int Y = (int)(Math.random() * 600);
jlb.setLocation(X,Y);
}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e){}
public void mouseReleased(MouseEvent e){}
public static void main (String[] args) {
new LayoutTest1();
}
}
2、界面上一副图片,鼠标可以将图片从一个地方拖到另一个地方
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class LayoutTest1 extends JFrame implements MouseMotionListener {
private JPanel jpl = new JPanel();
private Icon ico = new ImageIcon("img.jpg");
private JLabel jlb = new JLabel(ico);
public LayoutTest1(){
this.addMouseMotionListener(this);
jpl.setLayout(null);
jlb.setLocation(300,200);
jlb.setSize(ico.getIconWidth(),ico.getIconHeight());
jpl.add(jlb); this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public void mouseDragged(MouseEvent e){
int X = e.getX(); int Y = e.getY();
jlb.setLocation(X,Y);
}
public void mouseMoved(MouseEvent e){}
public static void main (String[] args) {
new LayoutTest1();
}
}
3、界面上一副图片,通过键盘上下左右键控制其移动
KeyListener
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class LayoutTest1 extends JFrame implements KeyListener {
private JPanel jpl = new JPanel();
private Icon ico = new ImageIcon("img.jpg");
private JLabel jlb = new JLabel(ico);
public LayoutTest1(){
this.addKeyListener(this);
jpl.setLayout(null);
jlb.setLocation(300,200);
jlb.setSize(ico.getIconWidth(),ico.getIconHeight());
jpl.add(jlb); this.add(jpl);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(800,600);
this.setVisible(true);
}
public void keyPressed(KeyEvent e) {
int code = e.getKeyCode();
int X = jlb.getX(); int Y = jlb.getY();
if(code==KeyEvent.VK_UP){
Y-=ico.getIconHeight();
}else if(code==KeyEvent.VK_DOWN){
Y+=ico.getIconHeight();
}else if(code==KeyEvent.VK_LEFT){
X-=ico.getIconWidth();
}else if(code==KeyEvent.VK_RIGHT){
X+=ico.getIconWidth();
}
jlb.setLocation(X,Y);
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public static void main (String[] args) {
new LayoutTest1();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel{
public void paint(Graphics g){
System.out.println("Hello");
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel{
public void paint(Graphics g){
g.setColor(Color.red);
g.drawLine(100,100,200,300);
g.setColor(Color.blue);
g.fillOval(100,200,200,100);
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel implements Runnable{
public MyCanvas(){
new Thread(this).start();
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(new Color((int)(Math.random()*256), (int)(Math.random()*256), (int)(Math.random()*256)));
int X = (int)(Math.random()*this.getWidth());
int Y = (int)(Math.random()*this.getHeight());
int W = (int)(Math.random()*100);
int H = (int)(Math.random()*100);
g2d.fillOval(X,Y,W,H);
}
public void run(){
while(true){
try { Thread.sleep(100); } catch(Exception ex){}
this.repaint();
}
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel implements Runnable{
public MyCanvas(){
new Thread(this).start();
}
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.setStroke(new BasicStroke(10));
g2d.setColor(new Color((int)(Math.random()*256), (int)(Math.random()*256), (int)(Math.random()*256)));
int X = (int)(Math.random()*this.getWidth());
int Y = (int)(Math.random()*this.getHeight());
int W = (int)(Math.random()*100);
int H = (int)(Math.random()*100);
g2d.drawOval(X,Y,W,H);
}
public void run(){
while(true){
try { Thread.sleep(100); } catch(Exception ex){}
this.repaint();
}
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel {
Image img = Toolkit.getDefaultToolkit().createImage("img.jpg");
public void paint(Graphics g){
g.drawImage(img,100,100,this);
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel {
Image img = Toolkit.getDefaultToolkit().createImage("img.jpg");
public void paint(Graphics g){
g.drawImage(img,100,100,this);
g.drawImage(img,500,500, 200, 200, this);
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
drawImage(Image img,int x,int y, int width,
int height,ImageObserver observer)
案例:图像自动在界面上放大
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel implements Runnable {
int W = 0;
int H = 0;
Image img = Toolkit.getDefaultToolkit().createImage("img.jpg");
MyCanvas(){
new Thread(this).start();
}
public void paint(Graphics g){
g.drawImage(img,100,100, W, H, this);
}
public void run(){
while(true){
W+=10; H+=8;
repaint();
try{ Thread.sleep(100); } catch(Exception e){}
}
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel {
Image img = Toolkit.getDefaultToolkit().createImage("img.jpg");
public void paint(Graphics g){
g.drawImage(img,0,0, this.getWidth(), this.getHeight(),
0, img.getHeight(this)/2, img.getWidth(this),img.getHeight(this) ,
this);
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}
import javax.swing.*;
import java.awt.*;
class MyCanvas extends JPanel {
Image img = Toolkit.getDefaultToolkit().createImage("img.jpg");
public void paint(Graphics g){
Graphics2D g2d = (Graphics2D)g;
g2d.rotate(Math.PI/4, 100+img.getWidth(this)/2,100+img.getHeight(this)/2);
g.drawImage(img,100,100,this);
}
}
class PaintTest extends JFrame{
MyCanvas mc = new MyCanvas();
public PaintTest(){
this.add(mc);
this.setSize(800,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new PaintTest();
}
}