Liny_@NotePad

沉迷ACG中

Java游戏开发入门之隐藏鼠标。。

这两天跟着马士兵的坦克大战视频学习AWT。。。运行起来后发现鼠标一直都有,好讨厌 - -

下面贴个隐藏鼠标的方法,把它放到主Frame里,再调用即可。

  1. public void hideCursor() {
  2.         Image image = Toolkit.getDefaultToolkit().createImage(
  3.                 new MemoryImageSource(0, 0, new int[0], 0, 0));
  4.         this.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(
  5.                 image, new Point(0, 0), null));
  6. }

Java 一些目录操作(查看/创建/删除)

 还是来自SOSO问问的问题:

编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求:
1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;
2. 输入: java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)
3. 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
4. 输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示

BigInteger 判断素数。。

又是在问问上看到。。这次的题目是:

编写一个程序,用一个线程显示时间,一个线程用来计算(如判断一个大数是否是质数),当质数计算完毕后,停止显示时间。

灯泡异常问题模拟^^

假设需要制造一个带有四个按钮和两个灯泡的盒子并具有以下功能:

  1. 有四个按钮输入,分别称为B1,B2,B3和B4;
  2. 有两个灯泡作为输出,分别称为L1和L2;
  3. B1是打开电源的按钮;
  4. B4是关闭电源的按钮;
  5. B2和B3 是操作按钮;
  6. 在B1被按下后及B4被按下前,系统应称为电源打开状态;
  7. 在B4被按下后及B1被按下前,系统应称为电源关闭状态;
  8. 在电源关闭状态下,B2和B3按钮不起作用;
  9. 在电源关闭状态下,灯应不亮;
  10. 从最近一次电源打开状态算起,如果B2被按下的次数比B3被按下的次数多,L1亮,否则L2亮。
  11. 任何时候都不能有一个以上的灯泡亮;
  12. 如果其中的一个灯泡出现故障,另一个灯泡应以2秒钟的间隔闪烁,而不管B2和B3的操作过程。当B4按下时,闪烁停止;当B1被按下时,闪烁重新开始。当故障被排除后闪烁停止,系统恢复正常状态。

Swing:重置按钮的监听器实现

rt。。写了一个类实现ActionListener,actionPerformed时递归遍历容器中的所有组件 如果是可输入组件则清除内容,可选择组件则清除选择。

  1. import java.awt.Component;
  2. import java.awt.Container;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5.  
  6. import javax.swing.JComboBox;
  7. import javax.swing.JList;
  8. import javax.swing.JTextArea;
  9. import javax.swing.JTextField;
  10.  
  11. /**
  12. * <p>Title: 重置按钮监听器</p>
  13. *
  14. * <p>Description: 单击重置按钮 清空窗体中数据</p>
  15. *
  16. * @author YOYO
  17. *
  18. * @create 2009-8-8
  19. *
  20. * @修改历史
  21. * <li>版本号 修改日期 修改人 修改说明
  22. * <li>
  23. * <li>
  24. */
  25. public class SuperResetButtonAction implements ActionListener {
  26.        
  27.         private Container container;
  28.        
  29.         public SuperResetButtonAction(Container container) {
  30.                 this.container = container;
  31.         }
  32.        
  33.         /**
  34.          * 清空容器内容
  35.          * @param parent
  36.          */
  37.         private void clear(Container parent) {
  38.                 for(Component component: parent.getComponents()){
  39.                         if(component instanceof Container) {
  40.                                 clear((Container) component);
  41.                         }
  42.                         if(component instanceof JTextField) {
  43.                                 ((JTextField) component).setText("");
  44.                         }
  45.                         if(component instanceof JTextArea) {
  46.                                 ((JTextArea) component).setText("");
  47.                         }
  48.                         if(component instanceof JComboBox) {
  49.                                 if(((JComboBox) component).getItemCount()>0) {
  50.                                         ((JComboBox) component).setSelectedIndex(0);
  51.                                 }
  52.                         }
  53.                         if(component instanceof JList) {
  54.                                 ((JList)component).clearSelection();
  55.                         }
  56.                 }
  57.         }
  58.  
  59.         public void actionPerformed(ActionEvent arg0) {
  60.                 clear(container);
  61.         }
  62.  
  63. }

static属性报NullPointException?!

在写一个TabPanel时用饿汉式单例写,
继承了封装过的JPanel,重写父类的方法fillData可以通过service获得数据,显示到界面上,

有好几个TabPanel是正常的,但是有两个会报NullPointException,真抽象……

于是百度关键词"static 变量 null",看到的第一条:

Re: 求助关于static变量初始化的一个问题! - CSDN游戏开发站
1.全局变量(包括全局中的static变量)都是在其所在模块被加载时,被初始化的。 2.通常全局变量的初始化顺序是不可假定的,但同一个文件中的两个全局变量,谁放在前面,谁好象就应先被初始化。 3.模板中的static变量与全局变量谁先被初始...
bbs.gamedev.csdn.net/Web/53824/ShowPost.aspx 74K 2009-7-29 - 百度快照

顿悟……

话说我用了个static TabPanel panel = new ThisTabPanel();来存放单例的实例,
在其他TabPanel里我的service都放在panel前面,但是惟独这两个放到后面去了。。

调一下位置,正常了,好囧。。细节部分真的要注意啊 = =

Java 复制到剪贴板

两句话即可~

public void copy(String str) {
        StringSelection stsel = new StringSelection(str);
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stsel, stsel);
}

JFace TreeViewer Demo

样例: