当前位置: 代码迷 >> Java相关 >> GUI的Graphics问题
  详细解决方案

GUI的Graphics问题

热度:407   发布时间:2007-04-18 11:02:01.0
GUI的Graphics问题

代码如下~!!!但是画不出黑色的圆来 只有面板的背景颜色。我用netbeans写的
求救啊~!!!不胜感激~!!!

import java.awt.Color;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

class LittleChessPanel extends javax.swing.JPanel {
public LittleChessPanel() {
initComponents();
setBackground(new java.awt.Color(0, 0, 255));
setSize(new java.awt.Dimension(50, 50));
}
void Componentpaint(Graphics g) {
super.paintComponents(g);
g2=(Graphics2D)g;
g2.fillOval(5,5,40,40);
g2.setColor(new java.awt.Color(0,0,0));
}
void setlittlechesscolor(Color c) {g2.setColor(c);
}
int x,y,state=0;
private Graphics2D g2;
int getx(){return x;}
void setx(int i){x=i;}
int gety(){return y;}
void sety(int j){y=j;}
int getstate(){return state;}
void setstate(int s){state=s;}

// <editor-fold defaultstate="collapsed" desc=" 生成的代码 ">
private void initComponents() {

setAlignmentX(0.0F);
setAlignmentY(0.0F);
setPreferredSize(new java.awt.Dimension(50, 50));
org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 50, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 50, Short.MAX_VALUE)
);
}// </editor-fold>


}

搜索更多相关的解决方案: GUI  Graphics  

----------------解决方案--------------------------------------------------------
void Componentpaint(Graphics g) {
super.paintComponents(g);
g2=(Graphics2D)g;
g2.fillOval(5,5,40,40);
g2.setColor(new java.awt.Color(0,0,0));
}

你写错了,要自定义画法,要重写

protected void paintComponent(Graphics g)
----------------解决方案--------------------------------------------------------
回复:(千里冰封)void Componentpaint(Graphics g) ...

我改了还是不行啊???


----------------解决方案--------------------------------------------------------

还有,你要先设颜色,再画圆最好

protected void paintComponent(Graphics g){
super.paintComponent(g);//调用父类的paintComponent就可以了,没必要调用s的
g2=(Graphics2D)g;
g2.setColor(new java.awt.Color(0,0,0));
g2.fillOval(5,5,40,40);
}


----------------解决方案--------------------------------------------------------
回复:(千里冰封)还有,你要先设颜色,再画圆最好prot...
都改了啊~~还是不管用
----------------解决方案--------------------------------------------------------
回复:(y_l_y_)回复:(千里冰封)还有,你要先设颜色...

现在全部的是这样的
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;

public class LittleChessPanel extends javax.swing.JPanel{
int x,y,state=0;
private Graphics2D g2;
/** Creates a new instance of LittleChessPanel */
public LittleChessPanel() {initComponents();
}
private void initComponents() {
setBackground(new java.awt.Color(0, 0, 255));
setSize(new java.awt.Dimension(50, 50));

}

protected void paintComponent(Graphics g) {
super.paintComponent(g);
g2.setColor(new java.awt.Color(0, 0, 0));
g2.fillOval(5, 5, 40, 40);
}

public void setlittlechesscolor(Color c) {g2.setColor(c);
}
int getx(){return x;}
void setx(int i){x=i;}
int gety(){return y;}
void sety(int j){y=j;}
int getstate(){return state;}
void setstate(int s){state=s;}
}


----------------解决方案--------------------------------------------------------
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(new java.awt.Color(0, 0, 0));
g.fillOval(5, 5, 40, 40);
}

你的程序编译都通不过
----------------解决方案--------------------------------------------------------
回复:(千里冰封) protected void paintComponent...
不是  中间少了一句 g2=(Graphics2D)g;
----------------解决方案--------------------------------------------------------
已经出来了~~~谢谢啊
以下是引用千里冰封在2007-4-18 16:02:55的发言:
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(new java.awt.Color(0, 0, 0));
g.fillOval(5, 5, 40, 40);
}

你的程序编译都通不过

非常感谢~!!!!!!!


----------------解决方案--------------------------------------------------------
  相关解决方案