首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到symbol: symbol: class SimpleDate location: class SimpleDateClient

找不到symbol: symbol: class SimpleDate location: class SimpleDateClient
EN

Stack Overflow用户
提问于 2015-09-15 08:19:21
回答 2查看 647关注 0票数 1

我正在使用Netbeans。由于某些原因,这些文件无法运行。我正在尝试导入Netbeans选项卡中的其他文件,但它们不起作用。如何使此应用程序也将SimpleDateClient.java作为main方法运行。

这是SimpleDateClient.java

代码语言:javascript
复制
/* A client program to display SimpleDate object values
   Anderson, Franceschi
*/
package SimpleDateClient;

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


public class SimpleDateClient extends JFrame
{
  private String action = "";

  private int animationPause = 2; // 2 seconds between animations


  private SimpleDate dateObj; // declare SimpleDate object reference

  public void workWithDates( )
  {
    animate( "dateObj reference declared" );

    /***** Add your code here *****/
    /**** 1. Instantiate dateObj using an empty argument list  */
    dateObj = new SimpleDate();


    animate( "Instantiated dateObj - empty argument list" );

    /***** 2. Set the month to the month you were born */


    //animate( "Set month to birth month" );


    /***** 3. Set the day to the day of the month you were born */


    //animate( "Set day to birth day" );


    /***** 4. Set the year to the year you were born */


    //animate( "Set year to birth year" );


    /***** 5. Call the nextDay method */


    //animate( "Set the date to the next day" );


    /***** 6. Set the day to 32, an illegal value */


    //animate( "Set day to 32" );


    /***** 7. Set the month to 13, an illegal value */


    //animate( "Set month to 13" );


    /***** 8. Assign the value null to dateObj */


    //animate( "Set object reference to null" );


    /***** 9. Attempt to set the month to 1 */

  }

  public SimpleDateClient( )
  {
    super( "A SimpleDate Object" );

    setSize( 300, 300 );
    setVisible( true );
  }

  public void paint( Graphics g )
  {
    super.paint( g );

    // display action
    g.drawString( action, 50, 250 );

    // object reference
    int sX = 50, sY = 75;
    int boxL = 75, boxH = 20;
    g.drawRect( sX, sY, boxL, boxH );
    g.drawString( "dateObj", sX, sY - 10 );

    if ( dateObj != null )
       draw( g );
    else
      g.drawString( "null", sX + 15, sY + 15 );
  }

  public void draw( Graphics g )
  {
    int sX = 50, sY = 75;
    int boxL = 75, boxH = 20;

    // arrow
    g.drawLine( sX + boxL, sY + boxH / 2,
                sX + boxL + 25, sY + boxH / 2 );
    g.drawLine( sX + boxL + 25, sY + boxH / 2,
                sX + boxL + 25, sY + boxH * 2 );
    g.drawLine( sX + boxL + 25 - 5, sY + boxH * 2 - 5,
                sX + boxL + 25, sY + boxH * 2 );
    g.drawLine( sX + boxL + 25 + 5, sY + boxH * 2 - 5,
                sX + boxL + 25, sY + boxH * 2 );


    // month
    g.drawString( "month", sX + boxL - 50, sY + 2 * boxH + 15 );
    g.drawRect( sX + boxL, sY + 2 * boxH, boxL, boxH );
    g.drawString( Integer.toString( dateObj.getMonth( ) ),
                   sX + boxL + 5, sY + 2 * boxH + 15 );

    // day
    g.drawString( "day", sX + boxL - 50, sY + 3 * boxH + 15 );
    g.drawRect( sX + boxL, sY + 3 * boxH, boxL, boxH );
    g.drawString( Integer.toString( dateObj.getDay( ) ),
                  sX + boxL + 5, sY + 3 * boxH + 15 );

    // year
    g.drawString( "year", sX + boxL - 50, sY + 4 * boxH + 15 );
    g.drawRect( sX + boxL, sY + 4 * boxH, boxL, boxH );
    g.drawString( Integer.toString( dateObj.getYear( ) ),
                  sX + boxL + 5, sY + 4 * boxH + 15 );
  }

  public void animate( String a )
  {
    action = a;
    repaint( );
    Pause.wait( (double) animationPause );
  }

  public static void main( String [] args )
  {
    SimpleDateClient app = new SimpleDateClient( );
    app.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    app.workWithDates( );
  }
}

这是SimpleDate.java

代码语言:javascript
复制
/* A simple date class
   Anderson, Franceschi
*/
package SimpleDateClient;


public class SimpleDate
{
  private int month;
  private int day;
  private int year;

  /** default constructor
  *  sets month to 1, day to 1 and year to 2000
  */
  public SimpleDate( )
  {
    setDate( 1, 1, 2000 );
  }

  /** overloaded constructor
  *  @param mm    initial value for month
  *  @param dd    initial value for day
  *  @param yyyy  initial value for year
  *
  *  passes parameters to set methods
  */
  public SimpleDate( int mm, int dd, int yyyy )
  {
    setMonth( mm );
    setYear( yyyy );
    setDay( dd );
  }

  /* accessor methods */
  int getMonth( ) { return month; }
  int getDay( )   { return day; }
  int getYear( )  { return year; }

  /** mutator method */
  /** setMonth
  *  @param mm new value for month
  *  if mm is between 1 and 12, sets month to mm
  *  otherwise, sets month to 1
  */
  public void setMonth( int mm )
  {
    month = ( mm >= 1 && mm <= 12 ? mm : 1 );
  }

  /** setDay
  *  @param dd new value for day
  *  if dd is legal day for current month, sets day to dd
  *  otherwise, sets day to 1
  */
  public void setDay( int dd )
  {
    day = ( dd >= 1 && isValidDay( dd ) ? dd : 1 );
  }

  /** setYear
  *  @param yyyy new value for year
  *  sets year to yyyy
  */
  public void setYear( int yyyy )
  {
    year = yyyy;
  }

  /** sets date to the next day
  */
  public void nextDay( )
  {
     if ( ! isValidDay( ++day ) )
     {
         day = 1;
         if ( ++month > 12 )
         {
             month = 1;
             year++;
         }
     }
  }

  private boolean isValidDay( int newDay )
  {
     int [] daysInMonth = { 0, 31, 28, 31,
                                30, 31, 30,
                                31, 31, 30,
                               31, 30, 31 };

    if ( newDay > daysInMonth[month] )
    {
       if ( month == 2 && isLeapYear( ) && newDay == 29 )
          return true;
       else
          return false;
    }
    else
       return true;

  }

  private boolean isLeapYear( )
  {
     return !( year % 4 != 0
               ||( year % 100 == 0 && year % 400 != 0 ) );
  }


  /** setDate
  *  @param mm    new value for month
  *  @param dd    new value for day
  *  @param yyyy  new value for year
  *  passes parameters to setMonth, setDay, and setYear
  */
  public void setDate( int mm, int dd, int yyyy )
  {
    setYear( yyyy );  // set year first (could be leap year)
    setMonth( mm );   // set month next
    setDay( dd );     // set day
  }

  /** toString
  *  @return String
  *  returns date in mm/dd/yyyy format
  */
  public String toString( )
  {
    return month + "/" + day + "/" + year;
  }

  /** equals
  *  @param   d  Object to compare to this object
  *  @return  true if d is equal to this object
  *           false, otherwise
  */
  public boolean equals( Object d )
  {
    if ( !( d instanceof SimpleDate ) )
       return false;
    SimpleDate d1 = (SimpleDate)d;
    if ( month == d1.month
         && day == d1.day
         && year == d1.year )
      return true;
    else
      return false;
  }
}

这是Pause.java

代码语言:javascript
复制
/* Pause class to pause applications
   Anderson, Franceschi
*/
package SimpleDateClient;

public class Pause
{
  public static void wait( double seconds )
  {
     try
     {
       Thread.sleep( (int) ( seconds * 1000 ) );
     }
     catch ( InterruptedException e )
     {
       e.printStackTrace( );
     }
  }
}

EN

回答 2

Stack Overflow用户

发布于 2015-09-15 08:49:36

转到File | New Project

Categories中选择Java,从Projects中选择Java Application,然后单击Next >

命名项目并确保设置了初始包/类

现在,您应该有了项目的开始部分。

现在可以选择是将现有文件复制到项目中(在Windows下,只需从资源管理器中复制文件并将其粘贴到项目中(在src节点下)),还是在项目中创建空类并简单地复制粘贴原始文件中的内容

票数 0
EN

Stack Overflow用户

发布于 2015-09-15 12:05:29

我知道怎么做了。

将鼠标悬停在项目上。右键单击。单击Properties

单击Source Package Folders:旁边的Add Folder...,然后选择要使用的文件或文件夹。然后单击Ok

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32575780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档