栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Java中的Jframe上绘制简单的矩形

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Java中的Jframe上绘制简单的矩形

Jframe的contentPane默认使用BorderLayout。当您向其添加一个Square时,默认情况下会添加BorderLayout.CENTER并覆盖以前添加的所有Square。您将需要阅读所有可用于Swing
GUI的布局管理器。

例如,从这里开始:在容器中布置组件

话虽如此,我会做不同的事情。我将只创建一个JPanel并使其能够绘制多个正方形。例如这样的事情:

import java.awt.Dimension;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.Rectangle;import java.util.ArrayList;import java.util.List;import javax.swing.*;public class Gameframe extends Jframe {   public Gameframe() {      super("Game frame");      setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);      Squares squares = new Squares();      getContentPane().add(squares);      for (int i = 0; i < 15; i++) {         squares.addSquare(i * 10, i * 10, 100, 100);      }      pack();      setLocationRelativeTo(null);      setVisible(true);   }   public static void main(String[] args) {      new Gameframe();   }}class Squares extends JPanel {   private static final int PREF_W = 500;   private static final int PREF_H = PREF_W;   private List<Rectangle> squares = new ArrayList<Rectangle>();   public void addSquare(int x, int y, int width, int height) {      Rectangle rect = new Rectangle(x, y, width, height);      squares.add(rect);   }   @Override   public Dimension getPreferredSize() {      return new Dimension(PREF_W, PREF_H);   }   @Override   protected void paintComponent(Graphics g) {      super.paintComponent(g);      Graphics2D g2 = (Graphics2D) g;      for (Rectangle rect : squares) {         g2.draw(rect);      }   }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497230.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号