左边是绘图面板,右边有一个滑杆用来控制角度!使一个点围绕另一个点画直线!怎么就有问题呢?!本人使初学者,这个问题可能比较弱,还望大家不要笑话:)
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;class myPane
extends JPanel {
int x1 = 300;
int y1 = 300;
int x2;
int y2;
int Angle; public myPane() {
x2 = (int) (x1 + 200 * Math.cos(this.getAngle()));
y2 = (int) (y1 + 200 * Math.sin(this.getAngle()));
} public void setAngle(int a) {
Angle = a;
}
public int getAngle() {
return Angle;
} public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(x1, y1, x2, y2);
}}public class Applet1
extends JApplet {
private boolean isStandalone = false;
myPane p = new myPane();
JPanel control = new JPanel();
JSlider slider = new JSlider(0, 360, 30);
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
} //Construct the applet
public Applet1() {
} //Initialize the applet
public void init() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
} //Component initialization
private void jbInit() throws Exception {
this.setSize(new Dimension(800, 600)); Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(p, BorderLayout.CENTER);
contentPane.add(control, BorderLayout.EAST);
control.add(slider);
slider.setMajorTickSpacing(90);
slider.setMinorTickSpacing(30);
slider.setPaintLabels(true);
slider.setPaintLabels(true);
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
p.setAngle(slider.getValue());
p.repaint();
}
}
);
} //Get Applet information
public String getAppletInfo() {
return "Applet Information";
} //Get parameter info
public String[][] getParameterInfo() {
return null;
} //static initializer for setting look & feel
static {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception e) {
}
}
}
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;class myPane
extends JPanel {
int x1 = 300;
int y1 = 300;
int x2;
int y2;
int Angle; public myPane() {
x2 = (int) (x1 + 200 * Math.cos(this.getAngle()));
y2 = (int) (y1 + 200 * Math.sin(this.getAngle()));
} public void setAngle(int a) {
Angle = a;
}
public int getAngle() {
return Angle;
} public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawLine(x1, y1, x2, y2);
}}public class Applet1
extends JApplet {
private boolean isStandalone = false;
myPane p = new myPane();
JPanel control = new JPanel();
JSlider slider = new JSlider(0, 360, 30);
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
} //Construct the applet
public Applet1() {
} //Initialize the applet
public void init() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
} //Component initialization
private void jbInit() throws Exception {
this.setSize(new Dimension(800, 600)); Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(p, BorderLayout.CENTER);
contentPane.add(control, BorderLayout.EAST);
control.add(slider);
slider.setMajorTickSpacing(90);
slider.setMinorTickSpacing(30);
slider.setPaintLabels(true);
slider.setPaintLabels(true);
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
p.setAngle(slider.getValue());
p.repaint();
}
}
);
} //Get Applet information
public String getAppletInfo() {
return "Applet Information";
} //Get parameter info
public String[][] getParameterInfo() {
return null;
} //static initializer for setting look & feel
static {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception e) {
}
}
}
解决方案 »
- 谁能给一道简单的进程、线程的题目我做做?
- ***请教:如何接受类返回的java.util.List类型,先谢谢了!!***
- 学生请教各位老师们,怎样把图片存入sql 2000数据库呢?
- applet 简单问题-新手请教
- 為什麼short a,b,c =>c=a+b;不對?????
- 调试jsp碰到的奇怪问题?
- JAVA程序如何在网络中运行起来?
- 通过读取XML中的树信息,形成资源管理器样式的界面
- c在linux下有ncursor,java在linux下有什么?
- 如何画一个立体的饼图?(搞定了一定给分)
- 数组二分法排序就一定要改变元素的顺序吗
- 怎样在调试时可以看到jdk类中的方法中的局部变量的值?
2、Math.sin和Math.cos的参数都是弧度而不是角度。因此你必须把slider上的数值换算成弧度。
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import javax.swing.event.*;class myPane
extends JPanel {
int x1 = 300;
int y1 = 300;
int x2;
int y2;
int Angle; public myPane() {
setPreferredSize(new Dimension(800,600)); //此处设Size
} public void setAngle(int a) {
Angle = a;
}
public int getAngle() {
return Angle;
} public void paintComponent(Graphics g) {
super.paintComponent(g);
x2 = (int) (x1 + 200 * Math.cos(this.getAngle()*Math.PI/180)); //此处计算
y2 = (int) (y1 + 200 * Math.sin(this.getAngle()*Math.PI/180));
g.drawLine(x1, y1, x2, y2);
}}public class Applet1
extends JApplet {
private boolean isStandalone = false;
myPane p = new myPane();
JPanel control = new JPanel();
JSlider slider = new JSlider(0, 360, 30);
//Get a parameter value
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
} //Construct the applet
public Applet1() {
} //Initialize the applet
public void init() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
} //Component initialization
private void jbInit() throws Exception {
this.setSize(new Dimension(800, 600)); Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(p, BorderLayout.CENTER);
contentPane.add(control, BorderLayout.EAST);
control.add(slider);
slider.setMajorTickSpacing(90);
slider.setMinorTickSpacing(30);
slider.setPaintLabels(true);
slider.setPaintLabels(true);
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
p.setAngle(slider.getValue());
p.repaint();
System.out.println("changed");
}
}
);
} //Get Applet information
public String getAppletInfo() {
return "Applet Information";
} //Get parameter info
public String[][] getParameterInfo() {
return null;
} //static initializer for setting look & feel
static {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch (Exception e) {
}
}
}
<applet code=Applet1.class codebase=. width=1000 height=600></applet>