这个代码为什么显示不出来…想得我头都大了

rongyunsheng 2008-06-04 02:35:30

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Math;
public class TestSin extends JFrame{
private DisplayPanel dp;

public void TestSin(){
setLayout(new BorderLayout());
dp=new DisplayPanel(this);
getContentPane().add(dp,"Center");
setLocation(200,200);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String []args){
new TestSin();
}

class DisplayPanel extends JPanel implements Runnable,MouseListener{
private TestSin ts;
Thread th;
double c=0.0;
double a=100.0;
boolean stopIt=false;
public DisplayPanel(TestSin tsi){
ts=tsi;
setBackground(Color.pink);

// setCursor(Cursor.WAIT_CURSOR); 这里为什么不对啊??
setPreferredSize(new Dimension(300,700));
addMouseListener(this);
th=new Thread(this);
th.start();
}
public void paint(Graphics g){
Graphics2D g1=(Graphics2D)g;
ts.setTitle("C ="+c);
g1.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
//也可以用super.paint();
g1.clearRect(0,0,getSize().width,getSize().height);
g1.setColor(Color.blue);
for(int i=0;i<getSize().width;i++){
g1.drawLine(i,(int)(Math.sin(i/a+c)*a+getSize().height/2),
i+1,(int)(Math.sin(i+1/a+c)*a+getSize().height/2) );
}
}
public void run(){
while(!stopIt){
c+=0.1;
repaint();
if(c>=2*Math.PI*getSize().width)
{c=0.0;}
}
try{
th.sleep(1000);
}
catch(InterruptedException ex)
{ex.printStackTrace();}
}
public void mouseClicked(MouseEvent e){}

public void mousePressed(MouseEvent e){}

public void mouseReleased(MouseEvent e){stopIt=!stopIt;}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}
}
}

编译通过,就是结果显示不出来
本意是想输出一段动态的SIN曲线
...全文
124 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
carnation003 2008-06-04
  • 打赏
  • 举报
回复
Format了一下:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Math;

public class TestSin extends JFrame {

private DisplayPanel dp;

public TestSin() {
setLayout(new BorderLayout());
dp = new DisplayPanel(this);
getContentPane().add(dp, "Center");
setLocation(200, 200);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
new TestSin();
}

class DisplayPanel extends JPanel implements Runnable, MouseListener {

private TestSin ts;

Thread th;

double c = 0.0;

double a = 100.0;

boolean stopIt = false;

public DisplayPanel(TestSin tsi) {
ts = tsi;
setBackground(Color.pink);

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
setPreferredSize(new Dimension(300, 700));
addMouseListener(this);
th = new Thread(this);
th.start();
}

public void paint(Graphics g) {
Graphics2D g1 = (Graphics2D) g;
ts.setTitle("C =" + c);
g1.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
// 也可以用super.paint();
g1.clearRect(0, 0, getSize().width, getSize().height);
g1.setColor(Color.blue);
for (int i = 0; i < getSize().width; i++) {
g1.drawLine(i, (int) (Math.sin(i / a + c) * a + getSize().height / 2),
i + 1, (int) (Math.sin(i + 1 / a + c) * a + getSize().height / 2));
}
}

public void run() {
while (!stopIt) {
c += 0.1;
repaint();
if (c >= 2 * Math.PI * getSize().width) {
c = 0.0;
}
}
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}

public void mouseClicked(MouseEvent e) {
}

public void mousePressed(MouseEvent e) {
}

public void mouseReleased(MouseEvent e) {
stopIt = !stopIt;
}

public void mouseEntered(MouseEvent e) {
}

public void mouseExited(MouseEvent e) {
}
}
}
carnation003 2008-06-04
  • 打赏
  • 举报
回复
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
mhoudg 2008-06-04
  • 打赏
  • 举报
回复
楼主啊

public void TestSin(){

这不是构造方法啊
构造方法不能有返回值
改成

public TestSin(){

就可以了

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧