纠结,让画两个OvalButton对象,另今天画了个棋盘

来源:互联网 发布:海军 知乎 编辑:程序博客网 时间:2024/06/05 16:29

说让画两个OvalButton,想add两个OvalButton不行,因为修改过paintComponent,每次调用就把前边画的清空了,只能调用一次啊,题上却说显示两个OvalButton对象,纠结了,难道还是从paintComponent入手?主要掌握方法太少了,现在主要就是书上给的一种方法,定义一个类,重写paintComponent方法,调用一下,画图。除了后边几个选修的没来得及看。

重点:前边有个FigurePanel类,也是让显示6个图形面板对象,出现了editor does not contain a main type错误,就是说:

还没找到方法画出多个对象

package Program13;

import java.awt.FlowLayout;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Program_13_1_bV2 extends JFrame{
 public Program_13_1_bV2(){
  
  add(new OvalButton("Cancel",130,30));
  add(new OvalButton("OK",30,30));

 }
 public static void main(String[] args){
  Program_13_1_bV2 frame = new Program_13_1_bV2();
  frame.setTitle("Program_13_1_bV2");
  frame.setLocationRelativeTo(null);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setSize(320,210);
  frame.setVisible(true);
 }
}
class OvalButton extends JPanel{
 private String str="hello";
 private int xCoordinate;
 private int yCoordinate;
 public OvalButton(){
  
 }
 public OvalButton(String str,int xCoordinate,int yCoordinate){
  this.str = str;
  this.xCoordinate = xCoordinate;
  this.xCoordinate = xCoordinate;
 }
 protected void paintComponent(Graphics g){
//  super.paintComponent(g);
  g.drawRect(xCoordinate,yCoordinate+30,100,60);
  g.drawOval(xCoordinate+3,xCoordinate+3,94,54);
  g.drawString(str,xCoordinate+42 ,xCoordinate+36 );
  
  
 }
}

 

 

棋盘太简单了,不用费时间想怎么做。问题是,画图的尺寸老对不上,比如,8*8 == 64格的图,每格width是40,height是20,那如果用Size == (320,160);图是画不全的,必须自己一点一点试出来是335,195。这个问题已经搁置了一阵子了

package Program13;

import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Program_13_1_c extends JFrame{
 public Program_13_1_c(){
  add(new chessBoard());
 }
 
 
 public static void main(String[] args){
  Program_13_1_c frame = new Program_13_1_c();
  frame.setTitle("Program_13_1_bV2");
  frame.setLocationRelativeTo(null);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.setSize(335,195);
  frame.setVisible(true);
 }
}
class chessBoard extends JPanel{
 
 protected void paintComponent(Graphics g){
  super.paintComponent(g);
  for(int i = 0;i < 8;i++){
   for(int j = 0;j < 8;j++){
    if(((i + j) % 2) == 0)
     g.drawRect(40*i, 20*j, 40, 20);
    else
     g.fillRect(40*i, 20*j, 40, 20);
   }
  }
 }
}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 本科三批取消以后三本学校怎么办 机票名字多了个字母安检怎么办 出隧道口限速40超速了怎么办 社保交了五年后断交以后该怎么办 躺椅折叠椅坐的地方坏了怎么办 苹果手机锁频密码忘了怎么办 客户要货公司不给进怎么办 高铁23:00买的票怎么办 带电子手刹的车刹车失灵怎么办 下坡刹车失灵遇行人不看车怎么办 跟大车后面看不见红灯闯了怎么办 跟着大货车后面闯了红灯怎么办 如果用工单位不发放加班工资怎么办 事故家属要司机向医院多交钱怎么办 在大学里和室友关系弄僵怎么办 房产证办出来房产局不给证怎么办 单位全员竞聘老员工没岗位怎么办 快件被快递公司签收了没给送怎么办 总公司跑路了分公司代理法人怎么办 大使馆领的结婚证现在离婚怎么办 日本签证照片被使馆贴错了怎么办 在菲律宾护照和签证丢了怎么办 新疆工地上班老板不肯发工资怎么办 德国大使馆签证如果拒签了怎么办 护照在大使馆办签证期间出国怎么办 法院两次判决不准离婚我该怎么办? 法院判决不准离婚妻子不回来怎么办 被告人在不调解的情况下怎么办 知道弟兄的孩子是别人的怎么办? 办居住证的回执单丢了怎么办 领取居住证的回执单丢了怎么办 北京居住证网上申报信息填错怎么办 买家退回来的货有问题怎么办 居转户过程中生的小孩户口怎么办 人才引进申请上海户口被拒怎么办 网络购高铁票身份证没有验证怎么办 高速遇到很浓的团雾怎么办 对于大巴不按座位坐的人该怎么办 火车上遇到占座不让的人怎么办 滁州婴儿打疫苗的绿本子怎么办 检查四维说宝宝嘴巴显示不清怎么办