新聞中心
求java繪圖程序源代碼(加注釋),在如下圖的基礎(chǔ)上,在圖案種類上添加圓角矩形,求代碼
直線 是 Line2D

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都做網(wǎng)站、興隆網(wǎng)絡(luò)推廣、小程序開發(fā)、興隆網(wǎng)絡(luò)營銷、興隆企業(yè)策劃、興隆品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供興隆建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
矩形是 Rectangle2D
弧 Arc2D
橢圓 Ellipse2D
圓角矩形是 RoundRectangle2D
上面的都在 java.awt.geom包里
根據(jù)一下JAVA源代碼繪制出相應(yīng)的順序圖和通信圖。
畫圖太麻煩,我可以告訴你程序執(zhí)行順序原理。
創(chuàng)建名為lineItems,類型是SalesLineItem類,的list集合。
創(chuàng)建名為total的Money 類的對象
聲明名為subtotal的Money 類的對象,并對其賦null
循環(huán)遍歷lineItems,lineItem是lineItems的子元素
subtotal被賦lineItem調(diào)用getSubtotal()后的返回值
total調(diào)用add()方法
最后將total返回,程序結(jié)束
求解答以下的java源代碼,詳細(xì)點(diǎn),說明這個(gè)程序的設(shè)計(jì)思路,還有比如運(yùn)用了多線程的話運(yùn)用了多線程的什么
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.Timer;
public class PinBall
{
private final int TABLE_WIDTH = 300;//桌面寬度
private final int TABLE_HEIGHT = 400;//桌面高度
private final int RACKET_Y = 340;//球拍的垂直位置
private final int RACKET_HEIGHT = 20;//球拍高度
private final int RACKET_WIDTH = 60;//球拍寬度
private final int BALL_SIZE = 16;//球的大小
private Frame f = new Frame("彈球游戲");//實(shí)例化一個(gè)窗口
Random rand = new Random();//實(shí)例化一個(gè)隨機(jī)數(shù)生成器
private int ySpeed = 10;//小球的縱向運(yùn)動(dòng)數(shù)度、
private double xyRate = rand.nextDouble() - 0.5;//返回一個(gè)-0.5到0.5之間的比率用控制小球運(yùn)動(dòng)方向
private int xSpeed = (int)(ySpeed*xyRate*2);//這個(gè)橫向速度在-10到10之間,產(chǎn)生左右擺動(dòng)運(yùn)動(dòng)效果
private int ballX = rand.nextInt(200)+20;//小球開始的橫坐標(biāo)位置,200表示產(chǎn)生0到100之間的隨機(jī)數(shù)
private int ballY = rand.nextInt(10)+20;//小球開始的縱坐標(biāo)位置
private int racketX = rand.nextInt(200);//球拍開始時(shí)的橫坐標(biāo)位置
private MyCanvas tableArea = new MyCanvas();//實(shí)力化一個(gè)畫布工具,集成Canvas類
private String shape = "";//保存需要繪制圖形的字符串屬性
Timer timer;//聲明一個(gè)時(shí)間變量
private boolean isLose = false;//表示游戲是否結(jié)束
public void init()
{
tableArea.setPreferredSize(new Dimension(TABLE_WIDTH,TABLE_HEIGHT));//定義畫布大小
f.add(tableArea);//添加畫布到窗口
KeyAdapter keyProcessor = new KeyAdapter()//實(shí)例化一個(gè)鍵盤監(jiān)聽事件適配器
{
public void keyPressed(KeyEvent ke)//重寫適配器里面的按下某鍵盤方法
{
if(ke.getKeyCode()==KeyEvent.VK_LEFT)//按下鍵盤左鍵時(shí)
{
if(racketX 0)//球拍左邊框不能出畫布的左邊框
racketX -=10;//按一左鍵次向左移動(dòng)10個(gè)像素
}
if(ke.getKeyCode()==KeyEvent.VK_RIGHT)//按下鍵盤右鍵時(shí)
{
if(racketX TABLE_WIDTH - RACKET_WIDTH)//球拍右邊框不能出畫布的右邊框
racketX +=10;//按一次右鍵移動(dòng)向右移動(dòng)10個(gè)像素
}
}
};
f.addKeyListener(keyProcessor);//給窗口添加鍵盤監(jiān)聽器
tableArea.addKeyListener(keyProcessor);//給畫布添加鍵盤監(jiān)聽器
ActionListener taskPerformer = new ActionListener()//這里是實(shí)例化了一個(gè)監(jiān)聽接口,這個(gè)接口里面只有一個(gè)方法
{
public void actionPerformed(ActionEvent evt)//重寫這個(gè)接口里面的方法,判斷小球的位置
{
if(ballX=0 || ballX=TABLE_WIDTH-BALL_SIZE)//保證小球橫向上在畫布之內(nèi)運(yùn)動(dòng)
{
xSpeed = -xSpeed;//觸發(fā)反方向運(yùn)動(dòng)
}
if(ballY=RACKET_Y-BALL_SIZE(ballXracketX||ballXracketX+RACKET_WIDTH))//出了球拍的可擊打范圍
{
timer.stop();//停止對監(jiān)聽器的觸發(fā)
isLose=true;//將標(biāo)志isLose變量置為true
tableArea.repaint();//調(diào)用畫布的重繪方法
}
else if(ballY=0||(ballY=RACKET_Y-BALL_SIZEballYracketXballX=racketX+RACKET_WIDTH))//小球在球拍之內(nèi),而其到達(dá)球拍的高度
{
ySpeed=-ySpeed;//上下方向改變,小球反彈
}
ballY+=ySpeed;//小球的坐標(biāo)在縱向上增加
ballX+=xSpeed;//小球的坐標(biāo)在橫向上的增加
tableArea.repaint();//調(diào)用畫布的重繪方法3
}
};
timer = new Timer(100,taskPerformer);//每隔0.1秒運(yùn)行一次監(jiān)聽器
timer.start();//計(jì)時(shí)器開始運(yùn)行
f.addWindowListener(new MyListener());//關(guān)閉窗口事件
f.pack();//設(shè)置窗口最佳大小
f.setVisible(true);//顯示窗口
}
class MyListener extends WindowAdapter//關(guān)閉窗口的類
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static void main(String[] args)//程序入口
{
new PinBall().init();//調(diào)用PinBall類里面的init()方法
}
class MyCanvas extends Canvas//建一個(gè)集成Canvas類的類
{
public void paint(Graphics g)//重寫父類的繪圖方法
{
if(isLose)//如果isLose為真,則在畫布里打印“游戲已結(jié)束”
{
g.setColor(new Color(255,0,0));//當(dāng)前顏色
g.setFont(new Font("黑體",Font.BOLD,30));//字體名稱,樣式,大小
g.drawString("游戲已結(jié)束!",50,200);//按坐標(biāo)繪制文字圖形
}
else//負(fù)責(zé)
{
g.setColor(new Color(240,240,80));//當(dāng)前顏色
g.fillOval(ballX,ballY,BALL_SIZE,BALL_SIZE);//填充顏色,根據(jù)坐標(biāo)和長寬填充圓形
g.setColor(new Color(80,80,200));//當(dāng)前顏色
g.fillRect(racketX,RACKET_Y,RACKET_WIDTH,RACKET_HEIGHT);//填充顏色,根據(jù)坐標(biāo)和長寬填充矩形
}
}
}
}
java圖形界面設(shè)計(jì)實(shí)驗(yàn),求源代碼,謝謝大佬!
代碼:
import java.awt.*;
import javax.swing.*;
public class W extends JFrame
{
public static void main(String[] args)
{
new W();
}
W()
{
JPanel p=new JPanel();
JButton b=new JButton("ok");
b.addActionListener(e-
{
b.setForeground(Color.BLUE);
b.setText("鼠標(biāo)點(diǎn)擊!");
//setTitle("鼠標(biāo)點(diǎn)擊!");
});
p.add(b);
add(p,BorderLayout.NORTH);
setTitle("事件測試窗口");
setSize(200,150);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
運(yùn)行結(jié)果截圖:
用Java編寫一個(gè)繪制圖形的小程序
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
//不規(guī)則圖形的繪制
public class IrregularShapeDemo extends JFrame {
GeneralPath gPath= new GeneralPath(); //GeneralPath對象實(shí)例
Point aPoint;
//構(gòu)造函數(shù)
public IrregularShapeDemo() {
super("不規(guī)則圖形的繪制"); //調(diào)用父類構(gòu)造函數(shù)
enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK); //允許事件
setSize(300, 200); //設(shè)置窗口尺寸
setVisible(true); //設(shè)置窗口可視
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //關(guān)閉窗口時(shí)退出程序
}
public void paint(Graphics g) { //重載窗口組件的paint()方法
Graphics2D g2D = (Graphics2D)g; //獲取圖形環(huán)境
g2D.draw(gPath); //繪制路徑
}
public static void main(String[] args) {
new IrregularShapeDemo();
}
protected void processMouseEvent(MouseEvent e) { //鼠標(biāo)事件處理
if(e.getID() == MouseEvent.MOUSE_PRESSED) {
aPoint = e.getPoint(); //得到當(dāng)前鼠標(biāo)點(diǎn)
gPath = new GeneralPath(); //重新實(shí)例化GeneralPath對象
gPath.moveTo(aPoint.x,aPoint.y); //設(shè)置路徑點(diǎn)
}
}
protected void processMouseMotionEvent(MouseEvent e) { //鼠標(biāo)運(yùn)動(dòng)事件處理
if(e.getID() == MouseEvent.MOUSE_DRAGGED) {
aPoint = e.getPoint(); //得到當(dāng)前鼠標(biāo)點(diǎn)
gPath.lineTo(aPoint.x, aPoint.y); //設(shè)置路徑
gPath.moveTo(aPoint.x, aPoint.y);
repaint(); //重繪組件
}
}
}
github下載的 Java 畫圖軟件的源代碼 如何運(yùn)行?
很簡單將源代碼復(fù)制到txt文檔,再打開編譯器,直接粘貼,就不需要導(dǎo)入。
導(dǎo)入還不如復(fù)制粘貼,很麻煩。
當(dāng)前文章:java繪圖源代碼,java 繪圖
網(wǎng)頁路徑:http://www.dlmjj.cn/article/dsgdoso.html


咨詢
建站咨詢
