1.根据你输出的语句:首行为文件名,"+"其余内容为文件内容,以空行结尾。按Ctrl+c组合键结束输入",你是想按Ctrl+c就退出程序结束输入,但是你的程序并没有定义当按下Ctrl+c键的响应。所以你一直输入内容是没办法结束程序的。你只有手动停止编译器停止程序。
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的两当网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2.你没有指定fileName文件的类型,也没生成位置,那么在你对应的工程路径下生成一个缺省的文件,名字为你第一次输入的fileName,内容为第二次输入的内容,你可以用记事本打开,看到输入的内容。
程序没有错,只是没有完成你想要的功能而已!
如果你是想用纯java写的话,那么你需要一个java自带的控件叫swing,毕竟你不能让人家在你的控制台上输入,下面是一个小例子,这可能不完全是你想要的,我给你提供的只是一个思路
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Font;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.TextField;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JProgressBar;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JSpinner;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
/**
* @author Administrator
*
*/
public class LoginSystem {
/**
* @param args
* @param flowLayout
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame f=new JFrame();
f.setTitle("系统登录界面");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setExtendedState(JFrame.MAXIMIZED_BOTH);
f.setVisible(true);
//设置窗口的大小和位置
f.setSize(400,400);
f.setLocation(200,200);
Container con=f.getContentPane();//生成一个容器
con.setLayout(new GridLayout(7,1));
JPanel pan1=new JPanel();//生成一个新的版面
JLabel title=new JLabel("欢迎登陆本系统");
title.setFont(new Font("宋体",Font.BOLD, 20));
pan1.add(title);
con.add(pan1);
//最上面的登陆文字
JPanel pan2=new JPanel();//生成一个新的版面
JLabel name=new JLabel("用户名");
pan2.add(name);
TextField tf_name=new TextField(20);
tf_name.setText("请在此处输入用户名");
pan2.add(tf_name);
con.add(pan2);
//用户名及其文本框放置在第二个版面上
JPanel pan3=new JPanel();//生成一个新的版面
JLabel pass = new JLabel("密码");
pan3.add(pass);
JPasswordField password=new JPasswordField(15);
password.setEchoChar('*');
pan3.add(password);
con.add(pan3);
//密码及其密码域放在第三个版面上
JPanel pan4 = new JPanel();
JButton b_log=new JButton("登陆");
pan4.add(b_log);
JButton b_exit=new JButton("退出");
pan4.add(b_exit);
con.add(pan4);
//登陆和退出这两个按钮放在第四个版面上
JPanel pan5 = new JPanel();
con.add(pan5);
JPanel pan6 = new JPanel();
con.add(pan6);
JPanel pan7 = new JPanel();
con.add(pan7);
//空白版面
}
}
现在普遍情况都是web项目,前端和后端的结合,前端可以用java提供的jsp,html(css,js),用他们加上后台代码,可以帮助你实现前端输入数据,后端处理数据,返回处理结果,渲染页面,这个太复杂了,不是一两句话说的清楚的,具体的你可以自行百度。
以上,就是这样
编好了,你自己运行下:
import java.util.Random;
import java.util.Scanner;
public class Test
{
public static Random r = new Random();
public static void printMenu()
{
System.out.println("(1) play another round");
System.out.println("(2) exit the game");
System.out.print("Selection:");
}
public static void main(String[] args) throws Exception
{
String content = null;
Scanner scan = new Scanner(System.in);
while(true)
{
printMenu();
content = scan.nextLine();
System.out.println();
//输入内容是2,则退出程序
if(content.equals("2")) break;
if(content.equals("1"))
{
System.out.print("Text to Match: ");
int count = r.nextInt(50) + 1;
char[] letters = new char[count];
for(int i=0;icount;i++)
{
letters[i] = (char)(r.nextInt(26) + 97);
System.out.print(letters[i]);
}
System.out.print("\n ");
long startTime = System.currentTimeMillis();
int correctCount = 0;
content = scan.nextLine();
for(int i=0;icount;i++)
{
if(content.charAt(i) == letters[i])
correctCount++;
}
long endTime = System.currentTimeMillis();
int time = (int)((endTime - startTime) / 1000);
if(correctCount == 0)
System.out.println("INCORRECTLY TYPED, YOU GET A SPEED OF 0!");
else
{
System.out.println("共花了" + time + "秒,正确率为:" + ((int)(((double)correctCount/count))*100) + "%");
}
}
System.out.println();
}
}
}
用 JavaSwing 编写程序,设置n个button,A,B,C 。
然后每个加 keyListener(键盘监听),在该方法里实现你要的功能即可
如果不需要显示模拟键,只需要在一个显示 JText 上 加keyListener 即可。
原理是一样的。