当前位置:  技术问答>java相关

高手哪儿去了?回答一个菜鸟的问题行不行?

    来源: 互联网  发布时间:2015-01-30

    本文导语:  我做了一个用JSlider滑条(滑条范围从100到200)控制半径(初始值为150)画一个圆,圆和滑条中间是JTextArea,说明半径,直径,面积和周长的值。而这些值也要随滑条移动而变化。   我的问题是: 1.当我试图在event han...

我做了一个用JSlider滑条(滑条范围从100到200)控制半径(初始值为150)画一个圆,圆和滑条中间是JTextArea,说明半径,直径,面积和周长的值。而这些值也要随滑条移动而变化。
 
我的问题是:
1.当我试图在event handle 中加入textArea display时,该语句在compile过程出现错误信息:
local variable display is accessed from within inner class; needs to be declared final 
setText(java.lang.Swing)in javax.swing.text.JTextComponent can not be applied to (int)

2.textArea 部分用BorderLayout.CENTER,显示太长。无法调整显示高度。

3.我用鼠标关闭程序窗口后,ms-dos不能正常回复到光标显示,不能输入命令。一定要按热启动关闭java后才正常。怎么办?

我问了好多人,都没能解决以上问题。先谢谢您的指导了。



以下是程序部分:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;

public class Circle extends JFrame {

   private OvalPanel myPanel;
   private JTextArea display;
   private JSlider radiusSlider;

    public Circle()

   {

      super( "Circle" );

      myPanel = new OvalPanel();
      myPanel.setBackground(Color.pink);

      JTextArea  display = new JTextArea( 5, 30 );
      display.setText( "The Radius is: " + myPanel.getRadius() +
                       "nThe Diameter is: " + myPanel.getDiameter()
                       + "nThe Area is: " + myPanel.getArea() +
                       "nThe Circumference is: " +
                       myPanel.getCircumference() );


      radiusSlider= new JSlider (SwingConstants.HORIZONTAL,100,200,10);
      radiusSlider.setMajorTickSpacing(10);
      radiusSlider.setPaintTicks(true);  
      radiusSlider.addChangeListener(
      new ChangeListener() {
 public void stateChanged (ChangeEvent e)
 {
    myPanel.setRadius(radiusSlider.getValue());
    display.setText(radiusSlider.getValue());
    repaint();
 }
 }
 );

    getContentPane().add(myPanel, BorderLayout.NORTH );
    getContentPane().add(display, BorderLayout.CENTER);
    getContentPane().add(radiusSlider,BorderLayout.SOUTH); 

      setSize( 210, 500 );
      show();

   }

    
 class OvalPanel extends JPanel {

   private int radius=150;


      public void paintComponent( Graphics g )

   {  g.drawOval( 0, 0, radius, radius );  }


   
   public void setRadius(int r)
   {
   radius = ( r>=0 ? r:150); 
   }

   public Dimension getPreferredSize()
   {
   return new Dimension (200,200);
   }

   public Dimension getMinimumSize()
   {
   return getPreferredSize();
   }


   public int getDiameter()  {  return ( 2 * radius );  }

   public int getCircumference()

   {  return ( int )( 2 * Math.PI * radius );  }

   public int getArea()

   {  return ( int )( radius * radius * Math.PI );  }

   public int getRadius()  {  return radius;  }


    
}

  public static void main( String args[] )

   {

      Circle app = new Circle();

       app.addWindowListener(

         new WindowAdapter() {

            public void WindowClosing( WindowEvent e )

            {

               System.exit( 0 );

            }

         }

      );

   }

}


 

|
3.  ctrl + c 即可

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;

public class Circle extends JFrame {

  private OvalPanel myPanel;
  private JTextArea display;
  private JSlider radiusSlider;

    public Circle()

  {
  
      super( "Circle" );
    
      myPanel = new OvalPanel();
      myPanel.setBackground(Color.pink);

      display = new JTextArea( 5, 30 );
      display.setText( "The Radius is: " + myPanel.getRadius() +
                      "nThe Diameter is: " + myPanel.getDiameter()
                      + "nThe Area is: " + myPanel.getArea() +
                      "nThe Circumference is: " +
                      myPanel.getCircumference() );


      radiusSlider= new JSlider (SwingConstants.HORIZONTAL,100,200,10);
      radiusSlider.setMajorTickSpacing(10);
      radiusSlider.setPaintTicks(true);  
      radiusSlider.addChangeListener(
      new ChangeListener() {
public void stateChanged (ChangeEvent e)
{
    myPanel.setRadius(radiusSlider.getValue());
    display.setText(Integer.toString(radiusSlider.getValue()));
    repaint();
}
}
);

    getContentPane().add(myPanel, BorderLayout.CENTER );
    Panel p = new Panel();
    p.setLayout(new BorderLayout());
    p.add(display, BorderLayout.NORTH);
    p.add(radiusSlider,BorderLayout.SOUTH);
 
    getContentPane().add(p,BorderLayout.SOUTH); 

      setSize( 210, 500 );
      show();

  }

    
class OvalPanel extends JPanel {

  private int radius=150;


      public void paintComponent( Graphics g )

  {  g.drawOval( 0, 0, radius, radius );  }


  
  public void setRadius(int r)
  {
  radius = ( r>=0 ? r:150); 
  }

  public Dimension getPreferredSize()
  {
  return new Dimension (200,200);
  }

  public Dimension getMinimumSize()
  {
  return getPreferredSize();
  }


  public int getDiameter()  {  return ( 2 * radius );  }

  public int getCircumference()

  {  return ( int )( 2 * Math.PI * radius );  }

  public int getArea()

  {  return ( int )( radius * radius * Math.PI );  }

  public int getRadius()  {  return radius;  }


    
}

  public static void main( String args[] )

  {

      Circle app = new Circle();

      app.addWindowListener(

        new WindowAdapter() {

            public void WindowClosing( WindowEvent e )

            {

              System.exit( 0 );

            }

        }

      );

  }

}




|
这个分好混,别忘记给分哦???
public void windowClosing(WindowEvent e) 里面的"windowClosing"不是大写的W

    
 
 

您可能感兴趣的文章:

  • to 高手:学java应该怎样一步步学习,从菜鸟到高手.
  • 初级菜鸟的简单问题,关于DeviceIoControl,各位高手指点一下吧!
  • jsp入门菜鸟向高手请教
  • #######菜鸟问题,请教高手,一定给分########
  • 菜鸟请教高手!!
  • 菜鸟向sco unix+oracle高手请教
  • 菜鸟头次用linux,请高手帮忙解决几个问题?
  • VMWare下的给虚拟机添加串口的问题?菜鸟请高手解释
  • 求高手解答菜鸟问题!!
  • 高手我想问个超级菜鸟问题LINUX的!!!!!!!!快,啊
  • linux菜鸟,请各位高手指教!!!
  • 一个关于日期的问题!(菜鸟问题,请高手不吝赐教)
  • 菜鸟问题,请高手瞧瞧
  • 菜鸟问题,高手不要怕打字
  • 菜鸟一个 请问高手门监听端口的命令.....
  • 菜鸟问题,请高手帮忙。。。。
  • 一个菜鸟问题,对高手来说很简单,先来先得,快点进来回答吧!!!!
  • Java菜鸟想学Java,请高手指教!(内有内容)
  • 欢迎高手指教,菜鸟来探讨!
  • 菜鸟请教各位高手
  • 请熟悉iptables高手帮忙回答
  • 问Linux高手一个安卓系统的问题,麻烦回答一下,谢谢!
  • 关于SNMP的问题(请高手回答,送40分)
  • Linux安装问题 (不是Linux的高手,很难回答的 @_@ )
  • 几个问题,请高手回答!
  • 有关swing的问题,请高手回答
  • 高手来看:关于按钮 只要回答正确了,要多少分给多少分 !!!!
  • 高手回答???
  • 请高手回答,不够可以再加分
  • 有个笨问题急请高手回答
  • 麻烦高手回答下 谢谢
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教高手lvs的奇怪问题,我挺着急,希望高手别潜水,就就我,先谢谢了
  • 各个高手看看这个问题!本人第一次学习java所以要各位高手的帮助。。
  • 高手请进,中文乱码问题,这是我同一个问题的第五个帖子了,大伙帮忙,心情好郁闷.期待高手.
  • 初学者的问题,关于LINUX的安装的问题,谢谢高手执教!!!
  • EJB问题,请教高手(非高手莫进)
  • 一个对高手来说很弱智的问题!关于安装的问题!谢谢!
  • 各位高手:光盘安装Linux9出现问题,请指教!
  • 一个严重的问题,高手请进。。。。
  • 求助ftp编程高手一个问题----有关免费包libftp-5.0
  • 有关Diskedit的问题,高手请进!
  • 问个关于服务器的问题?高手进
  • 关于字体显示的问题,请高手指点!!
  • fedora6安装花屏问题!!!!!!!急求高手执教!!!!!!!
  • freebsd做前台 使用win2000做储存器问题问题(非高手免进)
  • 100分请教高手 LCD 颜色变色的问题
  • 统计进入论坛的人数问题一侧,与其他问题不同的。高手解答!
  • 求教高手一个简单的XML问题
  • webmail问题,请高手帮忙!!!谁会使用IMP 3.0????!!!
  • 问题太难,请教高手,关于raid1功能的错误检测的实现
  • 高手请进!讨论一个问题。
  • 高手,高手,高高手请进!
  • 有熟悉EXIM的高手高手么??
  • 高分请高手,高手定能解决
  • 请问高手在linux中用什么命令可以做linux的启动盘???在等待高手??
  • 有高手研究Agent++麽?里面有个thread.h,蛮难读的,请高手指点
  • 难道高手区里的人就是高手?
  • 统计进入论坛的人数问题一侧,与其他问题不同的。高手解答! iis7站长之家
  • 真正的linux高手,请看过来,看你符合高手标准不?
  • 难道这没有高手吗?难道这没有乐于助人的高手?(高分酬谢62+50+50)
  • 关于我对linux高手用yum,非高手用源码的理由
  • 高手救命,很急——ORACLE817安装在UNIXWARE711上,手工启动数据库后在netasst中连接错误,高手帮我看看?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3