新聞中心
用java編程: 在JFrame窗體中繪制五角星,并用紅色填充
import?java.awt.Color;
目前創(chuàng)新互聯公司已為1000多家的企業(yè)提供了網站建設、域名、虛擬空間、綿陽服務器托管、企業(yè)網站設計、井研網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發(fā)展。
import?java.awt.Graphics;
import?java.awt.Point;
import?javax.swing.JLabel;
public?class?Pentagram?extends?JLabel?{
private?static?final?long?serialVersionUID?=?-3847465547528967067L;
private?Point?pointA;
private?Point?pointB;
private?Point?pointC;
private?Point?pointD;
private?Point?pointE;
private?Point?pointLeftInner;
private?Point?pointRightInner;
private?int?pix;
private?static?Color?bgColor?=?Color.YELLOW;
private?static?Color?fieldColor?=?Color.RED;
public?static?void?setBgColor(Color?bgColor)?{
Pentagram.bgColor?=?bgColor;
}
public?static?void?setFieldColor(Color?fieldColor)?{
Pentagram.fieldColor?=?fieldColor;
}
/**只有width有效,把label弄成正方的*/
public?void?setBounds(int?x,?int?y,?int?width,?int?height)?{
super.setBounds(x,?y,?width,?width);
}
/**只有width有效,把label弄成正方的*/
public?void?setSize(int?width,?int?height)?{
super.setSize(width,?width);
}
public?void?setSize(int?size){
setSize(size,?size);
}
public?Pentagram(int?size)?{
pix?=?size/12;
setSize(pix*12);
initPoints();
}
private?void?initPoints()?{
pointA?=?new?Point(6*pix,?0);???//上邊中間點
pointB?=?new?Point(0,?4*pix);???//左邊上面點
pointC?=?new?Point(12*pix,?4*pix);?//右邊上面點
pointD?=?new?Point(3*pix,?12*pix);?//左邊下面點
pointE?=?new?Point(9*pix,?12*pix);?//右邊下面點
pointLeftInner?=?new?Point(5*pix,?4*pix);??//左邊里面的點
pointRightInner?=?new?Point(7*pix,?4*pix);?//右邊里面的點
}
private?void?draw(Graphics?g)?{
fillPolygon(g,pointA,pointLeftInner,pointRightInner);
fillPolygon(g,pointB,pointE,pointRightInner);
fillPolygon(g,pointC,pointD,pointLeftInner);
}
/**
*?已知點,填充多邊形。
*?@param?g???畫筆
*?@param?points?已知的'點'們
*/
private?void?fillPolygon(Graphics?g,Point...points){
int[]?xPoints?=?new?int[points.length];
int[]?yPoints?=?new?int[points.length];
for?(int?i?=?0;?i??points.length;?i++)?{
xPoints[i]?=?points[i].x;
yPoints[i]?=?points[i].y;
}
g.fillPolygon(xPoints,?yPoints,?points.length);
}
public?void?paint(Graphics?g)?{
g.setColor(bgColor);
g.fillRect(0,?0,?12*pix,?12*pix);
g.setColor(fieldColor);
draw(g);
}
}
/**以下是測試代碼*/
import?javax.swing.JFrame;
import?javax.swing.JLabel;
public?class?Test?{
public?static?void?main(String[]?args)?{
JFrame?frame?=?new?JFrame();
frame.setBounds(200,?200,?400,?400);
JLabel?label?=?new?Pentagram(frame.getSize().height/2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(label);
frame.setVisible(true);
}
}
實現星星閃動的java代碼
package panel;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JPanel;
import main.MainTank;
public class TipPanel extends JPanel implements Runnable{
/**
*
*/
private static final long serialVersionUID = 1L;
//偶數打印,畫面板
int time=0;
public void paintComponent(Graphics g){
super.paint(g);
g.fillRect(0, 0, MainTank.getWidthOfGame(), MainTank.getHeightOfGame());//繪制提示窗口
if (time%2==0){//偶數打印,畫面板,造成閃爍效果
g.setColor(Color.ORANGE);
Font font=new Font("華文楷體",Font.BOLD,30);
g.setFont(font);//選用字體
g.drawString("Ready", 140, 130);
}
}
@Override
public void run() {
while (true){
try{
Thread.sleep(250);
}catch (Exception e){
e.getMessage();
}
time++;//繪圖開關
this.repaint();
}
}
}//TipPanel
類似的,修改下就行
Java 畫星星
public class A {
public void drow(int n){//n表示高度(打印的行數)
for(int i=n;i0;i--){
for(int j=i-1;j0;j--){//先打印i-1個空格
System.out.print(" ") ;
}
System.out.print("*") ;//打印第一個*
for(int j=2*(n-i)-1;j0;j--){//中間部分的空格
System.out.print(" ") ;
}
if(i!=ni!=1){//除了首尾兩行外每行中間的*
System.out.print("*") ;
}
for(int j=2*(i-1)-1;j0;j--){//右面部分的空格
System.out.print(" ") ;
}
System.out.println("*") ;//最后一個*
}
}
public static void main(String[] args){
A a = new A() ;
a.drow(3) ;//這里打印一個三層的
}
}
文章名稱:咋用java代碼繪制星星 咋用java代碼繪制星星圖形
URL地址:http://www.ef60e0e.cn/article/ddcpees.html