📄 graphed.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Graphed extends JFrame implements ChangeListener {
int a,b,c,d;
private JSlider aSlider,bSlider,cSlider,dSlider;
private JTextField aText,bText,cText,dText;
private JPanel panel;
private int height =200,width=200;
private JScrollPane scrollPane;
public static void main (String[] args){
Graphed frame=new Graphed();
frame.setSize(320,350);
frame.createGUI();
frame.show();
}
private void createGUI(){
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container window=getContentPane();
window.setLayout(new FlowLayout());
aSlider=new JSlider(-5,5);
aSlider.addChangeListener(this);
window.add(aSlider);
aText=new JTextField(4);
window.add(aText);
bSlider=new JSlider(-5,5);
bSlider.addChangeListener(this);
window.add(bSlider);
bText=new JTextField(4);
window.add(bText);
cSlider=new JSlider(-5,5);
cSlider.addChangeListener(this);
window.add(cSlider);
cText=new JTextField(4);
window.add(cText);
dSlider=new JSlider(-5,5);
dSlider.addChangeListener(this);
window.add(dSlider);
dText=new JTextField(4);
window.add(dText);
panel =new JPanel();
panel.setPreferredSize(new Dimension(width,height));
panel.setBackground(Color.lightGray);
window.add(panel);
JScrollPane scrollPane =new JScrollPane(panel);
window.add(scrollPane);
}
public void stateChanged(ChangeEvent e){
a=aSlider.getValue();
b=bSlider.getValue();
c=cSlider.getValue();
d=dSlider.getValue();
aText.setText("a="+Integer.toString(a));
bText.setText("b="+Integer.toString(b));
cText.setText("c="+Integer.toString(c));
dText.setText("d="+Integer.toString(d));
draw();
}
private void draw (){
Graphics paper=panel.getGraphics();
paper.setColor(Color.white);
paper.fillRect(0,0,width,height);
double x,y,nextX,nextY;
int xPixel,yPixel,nextXPixel,nextYPixel;
paper.setColor(Color.black);
for(xPixel=0;xPixel<=width;xPixel++){
x=scaleX(xPixel);
y=theFunction(x);
yPixel=scaleY(y);
nextXPixel=xPixel+1;
nextX=scaleX(nextXPixel);
nextY=theFunction(nextX);
nextYPixel=scaleY(nextY);
paper.drawLine(xPixel,yPixel,nextXPixel,nextYPixel);
}
}
private double theFunction(double x){
return a*x*x*x+b*x*x+c*x+d;
}
private double scaleX(int xPixel){
double xStart=-5,xEnd=5;
double xScale=width/(xEnd-xStart);
return (xPixel-(width/2))/xScale;
}
private int scaleY(double y){
double yStart=-5,yEnd=5;
int pixelCoord;
double yScale=height/(yEnd-yStart);
pixelCoord=(int)(-y*yScale)+(int)(height/2);
return pixelCoord;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -