65.9K
CodeProject 正在变化。 阅读更多。
Home

如何创建随机笑话生成器(Java)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (2投票s)

2010年5月14日

CPOL

1分钟阅读

viewsIcon

24452

downloadIcon

1

如何用 Java 创建一个随机笑话生成器

01_small.jpg

引言

使用 Java 在 Textpad 中设计应用程序虽然有趣,但也很令人兴奋。 快速跳转一下,我们已经创建了一个面板,并将列表框和标签放置在面板上。 为了让所有这些控件响应鼠标点击,我们必须在其中放入一些代码。
但这一次,我们选择在 actionPerformed(ActionEvent event) 方法中处理所有事件。

public void actionPerformed(ActionEvent event)
{
   if (event.getSource()==ExitButton)
   {
	   System.exit(0);
   }

 ...
}

event.getSource()==FilesList 事件

当鼠标指针悬停在 listBox 上方并按下左键时,会调用 event.getSource()==FilesList 事件。
一旦索引发生变化,就会调用此方法,它表示用户从包含笑话的一个文本文件切换到另一个文本文件。

if (event.getSource()==FilesList)
{
   JokeFile=FilesList.getSelectedIndex();
   lab2.setText("File = "+JokeFiles[FilesList.getSelectedIndex()].getName());
   showStatus(FilesList.getSelectedItem()+" " +LinesList.getSelectedItem()+ 
			"  "+ LinesList.getSelectedIndex());
   readLines(JokeFiles[FilesList.getSelectedIndex()].getName());
   JokeLine=0;
   //selectFile();
   selectLine();
}

readLines(String fileName) 方法

调用 readLines(String fileName) 方法会将文本文件中的笑话加载到 string 数组中。

public void readLines(String fileName)
{
      DataInputStream inStream;

      int count=0;
	  LinesList.removeAll();

         try {
               inStream = new DataInputStream(new FileInputStream("jokes\\"+fileName));

            while ( inStream.available() > 0 )
            {
				lines[count]=inStream.readLine();
				if (count==0)
				{
					JokeTitle.setText(lines[count]);
				    JokeDisplay.setText(lines[count]);
			    }
				LinesList.add((count+1) + "");
              // System.out.println( lines[count]);
               count++;
            } // End while.
            maxLines=count;
            lab3.setText("Joke Lines = "+maxLines);

            inStream.close();
         } catch ( java.io.IOException exception)
         {
           if ( exception instanceof FileNotFoundException)
           {
              System.out.println(
                 "A file called test.txt could not be found, \n" +
                 "or could not be opened.\n"                     +
                 "Please investigate and try again.");
           }
         }
} 

event.getSource()==LinesList 事件

当鼠标指针悬停在 listBox 上方并按下左键时,会调用 event.getSource()==LinesList 事件。
一旦索引发生变化,就会调用此方法,它表示用户从一个笑话行切换到另一个笑话行。

if (event.getSource()==LinesList)
{
   JokeLine=LinesList.getSelectedIndex();
   showStatus(FilesList.getSelectedItem()+" " +
	LinesList.getSelectedItem()+ "  "+ LinesList.getSelectedIndex());
  JokeDisplay.setText(lines[LinesList.getSelectedIndex()]);
  lab4.setText("Current Line = "+(JokeLine+1));
  //JokeTitle.setText(lines[LinesList.getSelectedIndex()]);
}

selectLine() 方法

最后,调用 selectLine() 方法将 string 数组中的一行笑话显示在标签上,语法为

JokeDisplay.setText(lines[LinesList.getSelectedIndex()]); 
public void selectLine()
{
   LinesList.select(JokeLine);
   //LinesList.makeVisible(JokeLine);
   JokeDisplay.setText(lines[LinesList.getSelectedIndex()]);
   lab4.setText("Current Line = "+(JokeLine+1));
   TimeDelay=lines[JokeLine].length()*TimeWait;
   lab5.setText("TimeDelay  = "+TimeDelay);
}

这就是在 Java 中创建一个随机笑话生成器是多么容易。

感谢阅读。

历史

  • 2010 年 5 月 14 日:初始发布
© . All rights reserved.