纠结,让画两个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);
}
}
}
}
- 纠结,让画两个OvalButton对象,另今天画了个棋盘
- 今天果断的纠结了
- 画了个中国象棋的棋盘初始版本
- wp7 ApplicationSettings让我纠结了半天
- 纠结了好长时间的事情今天终于敲定了
- 今天继续纠结在ctrl+z上面了
- 今天学到了两个函数
- iOS Dev (32) 画个棋盘
- 纠结了
- 让我纠结了一晚上的via协议
- 一道让我纠结了几天的面试题
- 今天上班,头让我写个项目出了看看
- 画棋盘
- 今天买了个dvd
- 今天建了个圈子
- 今天买了个靠背
- 今天买了个本本
- 今天写了个function
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- 高级技能
- 过河问题
- jsp工作原理
- 手工添加消息响应函数
- 纠结,让画两个OvalButton对象,另今天画了个棋盘
- sql datetime使用教程
- Annotation注解(1.5新特性)
- 昆明地铁线路图
- ServletContext,session,servlet的线程安全问题
- 《你的知识需要管理》读书笔记
- 【读书笔记——光标变量——Transact-SQL权威指南】【2011-02-18】
- stdafx.h头文件的作用
- DBA'S Responsibility