資源簡介
* 這是一個簡單的函數顯示工具,用戶輸入簡單函數,程序自動畫出函數圖像,有著完整的注釋,十分容易理解
* 支持常數e, sin, cos, tan, ln, ^, 加減乘除括號以及它們的復合運算
* 只能有一個變量,而且必須是x,比如sinx, 敲擊回車結束輸入
* 顯示出函數圖像后,可以通過拖動滑塊來改變圖像顯示的比例大小
* 用jdk1.6編譯的,如果jdk版本低可能會出錯

代碼片段和文件信息
/**
?*??@author:?LiNianLong
?*??@school:?xtu
?*??
?*??這是一個簡單的函數顯示工具,用戶輸入簡單函數,程序自動畫出函數圖像
?*??支持常數e?sin?cos?tan?ln?^?加減乘除括號以及它們的復合運算
?*??只能有一個變量,而且必須是x,比如sinx?敲擊回車結束輸入
?*??顯示出函數圖像后,可以通過拖動滑塊來改變圖像顯示的比例大小
?*??用jdk1.6編譯的,如果jdk版本低可能會出錯
?**/
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.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;?//?顯示光標此時的坐標位置的文本區
JTextField?txt2;?//?輸入函數表達式的文本區
JLabel?label;?//?提示標簽
JLabel?zerolb;?//?原點標簽
JSlider?slider;?//?調整圖片放縮比例的滑塊
JPanel?panel;?//?包含組件的面板
DrawFunPanel?drawpanel;?//?繪制函數圖像的面板
int?SliderValue;?//?滑塊所在的刻度
Cursor?crossCursor?handCursor;?//?鼠標光標
int?W?H;?//?窗體的長和寬
public?FunctionDraw(String?title){
super(title);?//?設置窗體標題
W?=?800;
H?=?600;
//?創建并設置提示標簽
label?=?new?JLabel(“請直接輸入函數的表達式,如sinx“);
label.setFont(new?Font(“楷體“?Font.BOLD?15));
label.setBounds((int)(W/12)3025020);
//?創建并設置文本區
txt1?=?new?JTextField(40);
txt2?=?new?JTextField(40);
txt1.setEditable(false);
txt1.setBounds((int)(W/12)525025);
txt2.setBounds((int)(W/12)5025025);
//?設置文本區輸入監聽
txt2.addActionListener(new?ActionListener()?{
@Override
public?void?actionPerformed(ActionEvent?e)?{
//?TODO?Auto-generated?method?stub
drawpanel.getInput(e.getActionCommand());
drawpanel.repaint();
}
});
//?設置文本區鼠標移動監聽,顯示當前坐標
this.addMouseMotionListener(new?MouseMotionAdapter()?{
@Override
public?void?mouseMoved(MouseEvent?e)?{
//?TODO?Auto-generated?method?stub
super.mouseMoved(e);
double?X?Y;?//?相對坐標
double?sx?sy;?//?applet中實際坐標
sx?=?e.getX();
sy?=?e.getY();
//?坐標變換
X?=?(double)(sx?-?0.5?*?W?-?8)?/?SliderValue;?//?減去邊框占8像素
Y?=?(double)-(sy?-?0.4?*?H?-?30)?/?SliderValue;?//?減去標題欄占30像素
//?設置輸出格式
DecimalFormat?twoDigit?=?new?DecimalFormat(“0.00“);
txt1.setText(“當前的坐標:“?+?“x=“?+?twoDigit.format(X)?+?“??y=“?+?twoDigit.format(Y));
txt1.setFont(new?Font(“楷體“?Font.PLAIN?15));
//?設置光標圖形
crossCursor?=?new?Cursor(Cursor.CROSSHAIR_CURSOR);
handCursor?=?new?Cursor(Cursor.HAND_CURSOR);
if(sx?>?0?&&?sx??0?&&?sy?0.8?*?H)
setCursor(crossCursor);
else
setCursor(handCursor);
}
});
//?創建并設置滑塊
slider?=?new?JSlider(JSlider.HORIZONTAL?0?100?50);
slider.setPaintLabels(true);?//?添加默認刻度標簽
slider.setPaintTicks(true);?//?添加刻度標記
slider.setMajorTickSpacing(20);?//?設置主刻度間隔
slider.setMinorTickSpacing(5);?//?設置次刻度的間隔
slider.setBounds((int)(W/1.8)(int)(H*0.02)20060);
//?設置滑塊監聽
slider.addChangeListener(new?ChangeListener()?{
@Override
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-01-22?23:04??JAVA考試_函數顯示工具\
?????文件?????????301??2015-01-22?22:59??JAVA考試_函數顯示工具\.classpath
?????文件?????????405??2015-01-22?22:59??JAVA考試_函數顯示工具\.project
?????目錄???????????0??2015-01-22?23:04??JAVA考試_函數顯示工具\.settings\
?????文件?????????598??2015-01-22?22:59??JAVA考試_函數顯示工具\.settings\org.eclipse.jdt.core.prefs
?????目錄???????????0??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\
?????文件????????1857??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\DrawFunPanel.class
?????文件?????????849??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\FunctionDraw$1.class
?????文件????????1882??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\FunctionDraw$2.class
?????文件?????????962??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\FunctionDraw$3.class
?????文件????????3136??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\FunctionDraw.class
?????文件????????5255??2015-09-17?14:52??JAVA考試_函數顯示工具\bin\FunctionValue.class
?????文件???????27423??2015-01-22?23:33??JAVA考試_函數顯示工具\bin\tubiao.png
?????目錄???????????0??2015-01-22?23:33??JAVA考試_函數顯示工具\src\
?????文件???????11912??2015-01-23?09:12??JAVA考試_函數顯示工具\src\FunctionDraw.java
?????文件???????27423??2015-01-22?23:33??JAVA考試_函數顯示工具\src\tubiao.png
- 上一篇:Java 從txt文件查找數據
- 下一篇:Android黑白名單的來店攔截
評論
共有 條評論