首先,它并不是用来监视或窃取银行账户的病毒。我甚至都不知道它是不是病毒。我只是去了我认识的朋友/人,并练习我的编程技巧。我会告诉你代码,然后我会尝试解释一下;
package pracatice;
import java.awt.event.*;
import javax.swing.*;
public class practice extends JFrame
{
public static boolean bool = true;
public static int x = 0;
public static int y = 0;
public static int num = 0;
public static TimerClass tc = new TimerClass();
public static Timer timer = new Timer(30, tc);
public JPanel panel = new JPanel();
public JButton btn = new JButton("press");
public practice()
{
setSize(100,100);
setTitle("Test");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPanel();
setVisible(true);
}
public void setPanel()
{
btn.addActionListener(new listener());
panel.add(btn);
add(panel);
}
public class listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
num = 0;
timer.start();
}
}
public static class TimerClass implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
do
{
num++;
JOptionPane optionPane = new JOptionPane("PC afected by virus");
JDialog dialog = optionPane.createDialog(null, "Virus");
dialog.setModal(false);
dialog.setLocation(x, y);
dialog.show();
updateCordinates();
}while(bool == true);
}
}
public static void updateCordinates()
{
if(x != 1100)
x += 100;
else if(x == 1100)
{
x = 0;
y += 50;
}
if(y == 650)
y =0;
}
public static void main(String[] args)
{
new practice();
}
}
所以,起初它显然构建了一个100 X 100 px大的窗口。它添加了一个按钮,表示"按"。按下时,它会每30毫秒启动一个新循环。
在循环的每次迭代中,它在一个稍微不同的位置放入一个新的JOPtionPane.showMessageBox(null,...)
。
起初,当我刚刚制作它时,我并不知道它会不可阻挡。我跑了,不得不重新启动笔记本电脑。当我按下确定时,它会放入另一个盒子,在完全相同的位置。当我尝试打开任务管理器时,它会自动将其最小化,然后再回到病毒"窗口。所以,笔记本电脑无法使用。我不得不重新启动它,关闭了一些我爸爸的标签......
以下是我想要了解的一些内容;
1)如果我把这个运行过夜,是否有可能,笔记本电脑耗尽或RAM,如果确实如此,会发生什么?
2)我可以说,当我按下键盘上的按钮时,整个事情就会关闭吗?
就像我之前说过的那样,我只是试图恶作剧我的朋友,而且程序碰巧不能关闭......有什么建议吗?
答案 0 :(得分:3)
是的,计算机最终会耗尽RAM。当发生这种情况时,除了你的程序崩溃之外,不会发生任何灾难。
不是很容易,因为JOptionPane
窗口不允许键盘事件进入程序的其余部分。您需要使用自己的窗口类型而不是JOptionPane
。然后,您可以使用KeyListener
的{{1}}。