資源簡(jiǎn)介
JAVA繪制函數(shù)圖像工具,學(xué)校的一個(gè)java大作業(yè)

代碼片段和文件信息
/**
?*??@author:?LI?LINGXIAO
?*??@school:?JU
?*??
?*??這是一個(gè)簡(jiǎn)單的函數(shù)顯示工具,用戶(hù)輸入簡(jiǎn)單函數(shù),程序自動(dòng)畫(huà)出函數(shù)圖像
?*??支持常數(shù)e?sin?cos?tan?ln?^?加減乘除括號(hào)以及它們的復(fù)合運(yùn)算
?*??只能有一個(gè)變量,而且必須是x,比如sinx?敲擊回車(chē)結(jié)束輸入
?*??顯示出函數(shù)圖像后,可以通過(guò)拖動(dòng)滑塊來(lái)改變圖像顯示的比例大小
?*??可以切換函數(shù)線(xiàn)條顏色
?**/
import?java.awt.*;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.MouseEvent;
import?java.awt.event.MouseMotionAdapter;
import?java.text.DecimalFormat;
import?java.util.HashMap;
import?java.util.Map;
import?java.util.Stack;
import?java.util.StringTokenizer;
import?javax.swing.*;
import?javax.swing.event.ChangeEvent;
import?javax.swing.event.ChangeListener;
public?class?FunctionDraw?extends?Jframe?{
JTextField?txt1;?//?顯示光標(biāo)此時(shí)的坐標(biāo)位置的文本區(qū)
JTextField?txt2;?//?輸入函數(shù)表達(dá)式的文本區(qū)
JLabel?label;?//?提示標(biāo)簽
JLabel?colorlb;//顏色標(biāo)簽
JLabel?zerolb;?//?原點(diǎn)標(biāo)簽
JSlider?slider;?//?調(diào)整圖片放縮比例的滑塊
JPanel?panel;?//?包含組件的面板
DrawFunPanel?drawpanel;?//?繪制函數(shù)圖像的面板
int?SliderValue;?//?滑塊所在的刻度
Cursor?crossCursor?handCursor;?//?鼠標(biāo)光標(biāo)
int?W?H;?//?窗體的長(zhǎng)和寬
public?FunctionDraw(String?title){
super(title);?//?設(shè)置窗體標(biāo)題
W?=?800;
H?=?600;
//?創(chuàng)建并設(shè)置提示標(biāo)簽
label?=?new?JLabel(“請(qǐng)直接輸入函數(shù)的表達(dá)式,如sinx“);
label.setFont(new?Font(“楷體“?Font.BOLD?15));
label.setBounds((int)(W/12)3025020);
//?創(chuàng)建并設(shè)置顏色選擇標(biāo)簽
colorlb?=?new?JLabel(“線(xiàn)條顏色“);
colorlb.setFont(new?Font(“楷體“?Font.BOLD?15));
colorlb.setBounds(700?(int)(H*0.02)?10020);
//?創(chuàng)建并設(shè)置文本區(qū)
txt1?=?new?JTextField(40);
txt2?=?new?JTextField(40);
txt1.setEditable(false);
txt1.setBounds((int)(W/12)525025);
txt2.setBounds((int)(W/12)5025025);
//?設(shè)置文本區(qū)輸入監(jiān)聽(tīng)
txt2.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
//?TODO?Auto-generated?method?stub
drawpanel.getInput(e.getActionCommand());
drawpanel.repaint();
}
});
//?設(shè)置文本區(qū)鼠標(biāo)移動(dòng)監(jiān)聽(tīng),顯示當(dāng)前坐標(biāo)
this.addMouseMotionListener(new?MouseMotionAdapter()?{
@Override
public?void?mouseMoved(MouseEvent?e)?{
//?TODO?Auto-generated?method?stub
super.mouseMoved(e);
double?X?Y;?//?相對(duì)坐標(biāo)
double?sx?sy;?//?applet中實(shí)際坐標(biāo)
sx?=?e.getX();
sy?=?e.getY();
//?坐標(biāo)變換
X?=?(double)(sx?-?0.5?*?W?-8)?/?SliderValue;?//?減去邊框占8像素
Y?=?(double)-(sy?-?0.4?*?H?-?30)?/?SliderValue;?//?減去標(biāo)題欄占30像素
//?設(shè)置輸出格式
DecimalFormat?twoDigit?=?new?DecimalFormat(“0.00“);
txt1.setText(“當(dāng)前的坐標(biāo):“?+?“x=“?+?twoDigit.format(X)?+?“??y=“?+?twoDigit.format(Y));
txt1.setFont(new?Font(“楷體“?Font.PLAIN?15));
//?設(shè)置光標(biāo)圖形
crossCursor?=?new?Cursor(Cursor.CROSSHAIR_CURSOR);
handCursor?=?new?Cursor(Cursor.HAND_CURSOR);
if(sx?>?0?&&?sx??0?&&?sy?0.8?*?H+30)
setCursor(crossCursor);
else
setCursor(handCursor);
}
});
//?創(chuàng)建并設(shè)置滑塊
slider?=?new?JSlider(JSlider.HORIZONTAL?0?100?50);
slider.setPaintLabels(true);?//?添加默認(rèn)刻度標(biāo)簽
slider.setPaintTicks(true);?//?添加刻度標(biāo)記
slider.setMajorT
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件?????422824??2017-06-18?13:22??1030415320李凌瀟\1030415320李凌瀟.docx
?????文件???????1895??2017-06-18?13:16??1030415320李凌瀟\DrawFunPanel.class
?????文件????????849??2017-06-18?13:16??1030415320李凌瀟\FunctionDraw$1.class
?????文件???????1886??2017-06-18?13:16??1030415320李凌瀟\FunctionDraw$2.class
?????文件????????962??2017-06-18?13:16??1030415320李凌瀟\FunctionDraw$3.class
?????文件???????1182??2017-06-18?13:16??1030415320李凌瀟\FunctionDraw$4.class
?????文件???????4168??2017-06-18?13:16??1030415320李凌瀟\FunctionDraw.class
?????文件??????12848??2017-06-17?11:09??1030415320李凌瀟\FunctionDraw.java
?????文件???????5255??2017-06-18?13:16??1030415320李凌瀟\FunctionValue.class
?????目錄??????????0??2017-06-18?13:23??1030415320李凌瀟
-----------?---------??----------?-----??----
???????????????451869????????????????????10
- 上一篇:java打磚塊
- 下一篇:Java畫(huà)面精美的簡(jiǎn)易聊天室
評(píng)論
共有 條評(píng)論