资源简介
JAVA绘制函数图像工具,学校的一个java大作业

代码片段和文件信息
/**
* @author: LI LINGXIAO
* @school: JU
*
* 这是一个简单的函数显示工具,用户输入简单函数,程序自动画出函数图像
* 支持常数e sin cos tan ln ^ 加减乘除括号以及它们的复合运算
* 只能有一个变量,而且必须是x,比如sinx 敲击回车结束输入
* 显示出函数图像后,可以通过拖动滑块来改变图像显示的比例大小
* 可以切换函数线条颜色
**/
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; // 显示光标此时的坐标位置的文本区
JTextField txt2; // 输入函数表达式的文本区
JLabel label; // 提示标签
JLabel colorlb;//颜色标签
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);
// 创建并设置颜色选择标签
colorlb = new JLabel(“线条颜色“);
colorlb.setFont(new Font(“楷体“ Font.BOLD 15));
colorlb.setBounds(700 (int)(H*0.02) 10020);
// 创建并设置文本区
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 < W && sy > 0 && sy < 0.8 * H+30)
setCursor(crossCursor);
else
setCursor(handCursor);
}
});
// 创建并设置滑块
slider = new JSlider(JSlider.HORIZONTAL 0 100 50);
slider.setPaintLabels(true); // 添加默认刻度标签
slider.setPaintTicks(true); // 添加刻度标记
slider.setMajorT
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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画面精美的简易聊天室
相关资源
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
评论
共有 条评论