⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jpaneldemo.java

📁 JAVA学习源代码,大家可以好好参考,请多提宝贵意见
💻 JAVA
字号:
//JPanelDemo.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JPanelDemo
    extends JFrame {
  private JPanel buttonPanel;
  private CustomPanel myPanel;
  private JButton circleButton, squareButton;

  public JPanelDemo() {
    super("JPanel Test");
    myPanel = new CustomPanel();
    myPanel.setBackground(Color.red);

    squareButton = new JButton("正方形");
    squareButton.addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent event) {
        myPanel.draw();
        myPanel.addSquare();
      }
    }
    );

    circleButton = new JButton("   圆   ");
    circleButton.addActionListener(
        new ActionListener() {
      public void actionPerformed(ActionEvent event) {
        myPanel.draw();
        myPanel.addCircle();
      }
    }
    );

    buttonPanel = new JPanel();
    buttonPanel.setLayout(new GridLayout(1, 2));
    buttonPanel.add(circleButton);
    buttonPanel.add(squareButton);

    Container container = getContentPane();
    JScrollPane scrollPane = new JScrollPane(myPanel);
    scrollPane.setHorizontalScrollBarPolicy(
              JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
    container.add(scrollPane, BorderLayout.CENTER);
    container.add(buttonPanel, BorderLayout.SOUTH);
    pack();
    setVisible(true);
  }

  public Dimension getPreferredSize(){
    return new Dimension(500,220);
  }
  
  
  
  public static void main(String args[]) {
    JPanelDemo application = new JPanelDemo();
    application.setDefaultCloseOperation(
        JFrame.EXIT_ON_CLOSE);
  }

}

class CustomPanel
    extends JPanel {
  private  int circleNumber=1;  //当前圆的个数
  private  int squareNumber=1;  //当前正方形的个数
  private int shape;



  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setColor(Color.blue);
      for(int i=0; i < circleNumber; i++)
      g.fillOval(55*i, 100, 50, 50); //画一序列填充圆

      for(int i=0; i < squareNumber; i++)
      g.fillRect(55*i, 0, 50, 50);//画一序列填充正方形
  }

  public void addCircle(){
    circleNumber++;
  }
  public void addSquare(){
   squareNumber++;
 }

  public void draw() {
    repaint();  //该方法会自动调用paintComponent()方法
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -