import?java.io.BufferedReader;
import?java.io.IOException;
import?java.io.InputStreamReader;
/*
*?System.in?标准输入流.是从键盘获取数据的
*?
*?键盘录入数据:
*?A:main方法的args接收参数.
*?java?HelloWorld?hello?world?java
*?Scanner?sc?=?new?Scanner(System.in);
*?String?s?=?sc.nextLine();
*?int?x?=?sc.nextInt()
*?C:通过字符缓冲流包装标准输入流实现
*?BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
*/
public?class?SystemInDemo?{
public?static?void?main(String[]?args)?throws?IOException?{
//?//获取标准输入流
//?InputStream?is?=?System.in;
//?//我要一次获取一行行不行呢?
//?//行.
//?//怎么实现呢?
//?//要想实现,首先你得知道一次读取一行数据的方法是哪个呢?
//?//readLine()
//?//而这个方法在哪个类中呢?
//?//BufferedReader
//?//所以,你这次应该创建BufferedReader的对象,但是底层还是的使用标准输入流
//?//?BufferedReader?br?=?new?BufferedReader(is);
//?//按照我们的推想,现在应该可以了,但是却报错了
//?//原因是:字符缓冲流只能针对字符流操作,而你现在是字节流,所以不能是用?
//?//那么,我还就想使用了,请大家给我一个解决方案?
//?//把字节流转换为字符流,然后在通过字符缓冲流操作
//?InputStreamReader?isr?=?new?InputStreamReader(is);
//?BufferedReader?br=?new?BufferedReader(isr);
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));
System.out.println("请输入一个字符串:");
String?line?=?br.readLine();
System.out.println("你输入的字符串是:"?◆?line);
System.out.println("请输入一个整数:");
//?int?i?=?Integer.parseInt(br.readLine());
line?=?br.readLine();
int?i?=?Integer.parseInt(line);
System.out.println("你输入的整数是:"?◆?i);
}
①根据你输出的语句:首行为文件名,"◆"其余内容为文件内容,以空行结尾.按Ctrl◆c组合键结束输入",你是想按Ctrl◆c就退出程序结束输入,但是你的程序并没有定义当按下Ctrl◆c键的响应.所以你一直输入内容是没办法结束程序的.你只有手动停止编译器停止程序.
程序没有错,只是没有完成你想要的功能而已!
第一种:
public class ShuRu{
public static void main(String arg[]){
System.out.println(arg[1]);
第二种:
import java.util.Scanner;
Scanner in=new Scanner(System.in);
String str=in.next();
System.out.println(str);
直接输入 a,b
输出为 a,bstem.in.read();?
扩展资料:
有输入就有输出,输出语句为
Java中的输出语句有以下四种:
①.、System.out.println(1111);//换行打印
注:
System.out.println(); 是最常用的输出语句,它会把括号里的内容转换成字符串输出到输出窗口(控制台),并且换行,当输出的是一个基本数据类型时,会自动转换成字符串,如果输出的是一个对象,会自动调用对象的toString();方法,将返回值输出到控制台
System.out.print(); 与第一个很相似,区别就是上一个输出后会换行,而这个命令输出后并不换行.
System.out.printf(); 这个方法延续了C语言的输出方式,通过格式化文本和参数列表输出.
下面的是键盘和鼠标的各种事件,看一下是不是你要的!
鼠标监听器
鼠标监听器mouseListener监听鼠标事件MouseEvent.相应事件和处理方法如下表:
鼠标事件 处理方法
MOUSE_PRESSED MousePressed (MouseEvent) 鼠标按下
MOUSE_RELEASED MouseReleased(MouseEvent) 鼠标松开
MOUSE_ENTERED MouseEntered (MouseEvent) 鼠标进入(某组件区域)
MOUSE_EXITED MouseExited (MouseEvent) 鼠标离开(某组件区域)
鼠标事件MouseEvent常用方法
int getX(), int getY() 得到鼠标的(象素)位置.
对于鼠标的移动和拖放,另外用鼠标运动监听器mouseMotionListener.因为许多程序不需要监听鼠标运动,把两者分开可简化程序.有两个方法处理鼠标运动事件:
MOUSE_MOVED MouseMoved (MouseEvent) 鼠标在移动MOUSE_DRAGGED MouseDragged(MouseEvent) 鼠标被拖动
下面的例程演示简单的鼠标监听,并在屏幕上输出鼠标操作的信息.
下面是讨论MouseMotionListener的使用时机,它提供的下面的两个方法,可让你随时掌握鼠标的坐标,并处理拖曳鼠标的操作.
MouseMotionListener mouseDragged(MouseEvent e)
mouseMoved(MouseEvent e)
-----------------------------------------------------------------------
下面的范例让你知道鼠标在JFrame上的坐标,并拖曳出直线来.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/*为了达到画线的功能,我们分别implements MouseListener与MouseMotionListener.
int x=0;
int y=0;
int startx,starty,endx,endy;//起始坐标与终点坐标
Container contentPane=getContentPane();
contentPane.addMouseListener(this);
contentPane.addMouseMotionListener(this);
show();
addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
);
/*由mousePressed(),mouseReleased()取得示拖曳的开始与结束坐标*/
public void mousePressed(MouseEvent e){
startx=e.getX();
starty=e.getY();
public void mouseReleased(MouseEvent e){
endx=e.getX();
endy=e.getY();
public void mouseEntered(MouseEvent e){ }
public void mouseExited(MouseEvent e){ }
public void mouseClicked(MouseEvent e){ }
/*mouseMoved(),mouseDragged()取得鼠标移动的每一个坐标,并调用repaint()方法*/
public void mouseMoved(MouseEvent e){
flag=1;
x=e.getX();
y=e.getY();
repaint();
public void mouseDragged(MouseEvent e){
public void update(Graphics g){
g.setColor(this.getBackground());
g.fillRect(0,0,getWidth(),getHeight());
paint(g);
public void paint(Graphics g){
g.setColor(Color.black);
if (flag==1){
g.drawLine(startx,starty,endx,endy);
g.drawLine(startx,starty,x,y);
public static void main(String[] args){
代码如下:
import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.InputEvent;
import java.util.Random;
/**
*
public class MouseController implements Runnable {
private Dimension dim;
private Random rand;
private Robot robot;
private volatile boolean stop = false;
public MouseController() {
dim = Toolkit.getDefaultToolkit().getScreenSize();
rand = new Random();
try {
robot = new Robot();
} catch (AWTException ex) {
ex.printStackTrace();
public void run() {
while(!stop) {
int x = rand.nextInt(dim.width);
int y = rand.nextInt(dim.height);
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_MASK);
} catch (InterruptedException ex) {
public synchronized void stop() {
stop = true;
public static void main(String[] args) {
MouseController mc = new MouseController();
Thre
$False$
ad mcThread = new Thread(mc);
System.out.println("Mouse Controller start");
mcThread.start();
mc.stop();
System.out.println("Mouse Controller stoped");
///
// MouseEvt.java
class MyPanel extends JPanel implements MouseMotionListener{
public MyPanel() {
addMouseListener(new MouseAdapter() {
publicvoid mouseClicked(MouseEvent evt) {
System.out.println("\n双击鼠标");
int x = evt.getX(); int y = evt.getY();
});
addMouseMotionListener(this);
publicvoid mouseMoved(MouseEvent evt){
System.out.println("\n鼠标正在移动");
publicvoid mouseDragged(MouseEvent evt){
System.out.println("\n鼠标正在拖动");
class MyFrame extends JFrame{
public MyFrame(){
setTitle("鼠标事件示例程序");
addWindowListener(new WindowAdapter(){
publicvoid windowClosing(WindowEvent e){
} );
Container contentPane = getContentPane();
contentPane.add(new MyPanel());
publicclass MouseEvt{
publicstaticvoid main(String[] args){
JFrame frame = new MyFrame();
frame.setVisible(true);
简要说明
鼠标双击事件
extends java.awt.event.MouseAdapter ...{
public void mouseClicked(MouseEvent e) ...{
System.out.println("clicked");
int clickTimes = e.getClickCount();
System.out.println("Doublc Clicked!");
下面是用定时器延时单击事件实现鼠标双击事件,单击和双击事件互不影响!
public class MyMouseListener
private static boolean flag=false;//用来判断是否已经执行双击事件
private static int clickNum=0;//用来判断是否该执行双击事件
final MouseEvent me=e;//事件源
if (this.clickNum == 1) ...{//当clickNum==1时执行双击事件
this.mouseDoubleClicked(me);//执行双击事件
this.clickNum=0;//初始化双击事件执行标志为0
this.flag=true;//双击事件已执行,事件标志为true
return;
//定义定时器
java.util.Timer timer=new java.util.Timer();
timer.schedule(new java.util.TimerTask() ...{
private int n=0;//记录定时器执行次数
public void run() ...{
if(MyMouseListener.flag)...{//如果双击事件已经执行,那么直接取消单击执行
n=0;
MyMouseListener.clickNum=0;
this.cancel();
mouseSingleClicked(me);//执行单击事件
MyMouseListener.flag = true;
clickNum◆◆;
n◆◆;
/** *//**
* 鼠标单击事件
* @param e 事件源参数
public void mouseSingleClicked(MouseEvent e)...{
System.out.println("Single Clicked!");
* 鼠标双击事件
public void mouseDoubleClicked(MouseEvent e)...{
//Test.java
public class Test extends JFrame{
public Test(){
super("test");
init();
this.setVisible(true);
private void init(){
JButton b=new JButton("button");
this.getContentPane().setLayout(null);
this.getContentPane().add(b);
b.addMouseListener(new MyMouseListener());
public static void main(String args[]){
new Test();
键盘监听器
键盘监听器KeyListener用来监听键盘事件.键盘事件有三种:KEY_PRESSED键按下了,KEY_RELEASED键松开了,KEY_TYPED键按过了.每个键都有一个键码,普通键的键码就是ASCII码.键码可通过int getKeyCode()方法获得.Java设置了一种"虚拟键码"(Virtual Key Code),用"VK_"作为前缀,例如VK_G.下面是某些特殊键的虚拟键码.
键码 含义 键码 含义
VK_LEFT/VK_RIGHT 左右方向键 VK_CONTROL Ctrl键
VK_KP_UP 小键盘向上 VK_ATL Alt键
VK_PAUSE 暂停键 VK_SHIFT Shift键
VK_NUMBER0 小键盘数字0 VK_F1 功能键F1
VK_0 数字键0 VK_B 字母键B
虚拟键码对应的是键位,不区分大小写.要想知道大小写还必须查看修饰键(modifier key).这由输入事件InputEvent的getModifere()方法得到,把返回值与常量SHIFT_MASK, CONTROL_MASK, ALT_MASK比较,用以判定哪个修饰键处于"同时按下"状态.
监听器KeyListener有三个方法keyPressed(KeyEvent evt),keyReleased(KeyEvent evt),keyTyped(KeyEvent evt),分别用于相应事件发生后的处理.下面的例程中给自己的键盘监听器建立了showKeyEventMsg方法来显示按键信息.
除了getKeyCode()方法得到键码外,还可用getKeyChar()方法得到输入的字符,用getKeyText(code)方法得到输入的字符串.用isShiftDown()判断shift键是否被按下等.当按下Control键时getKeyText返回的是"ctrl",Alt和Shift也类似.
下面的例子演示得到键码和字符的方法,在命令行上显示结果.
例1 本例程演示键盘监听器后键码的用法.
// KeyEvt.java
class MyKeyListener implements KeyListener{
publicvoid keyPressed(KeyEvent evt) {
System.out.println("\n按键被按下");
showKeyEventMsg(evt);
publicvoid keyReleased(KeyEvent evt){ }
publicvoid keyTyped(KeyEvent evt) { }
privatevoid showKeyEventMsg(KeyEvent evt){//显示按键事件信息
//得到按键对应的整型数
int code = evt.getKeyCode();
//返回按键事件所代表的字符
char c = evt.getKeyChar();
//得到代表按键的字符串
String szText = evt.getKeyText(code);
if (code != KeyEvent.VK_UNDEFINED)
System.out.println("\n按键对应的整型数:"◆code);
if (c != KeyEvent.CHAR_UNDEFINED)
System.out.println("\n与按键相联系的字符:"◆c);
if (evt.isShiftDown())
System.out.println("\n按键Shift被按下");
System.out.println("\n按键本身的字符串:"◆szText);
class ButtonPanel extends JPanel{
public ButtonPanel() {
//新建一个文本域组件
add(tf);
//指定用来处理该按钮事件的监听器对象为JPanel本身
myListener = new MyKeyListener();
tf.addKeyListener(myListener);
private JTextField tf;
private MyKeyListener myListener;
class ButtonFrame extends JFrame{
public ButtonFrame() {
setTitle("键盘事件示例程序");
setLocation(100,100);
addWindowListener(new WindowAdapter() {
publicvoid windowClosing(WindowEvent e)
{ System.exit(0);
Container ctPane = getContentPane();
ctPane.add(new ButtonPanel());
publicclass KeyEvt{
publicstaticvoid main(String[] args) {
JFrame frame = new ButtonFrame();
///简要说明
程序建立了自己的键盘监听器MyKeyListener,定义了一个新方法showKeyEventMsg用来在标准输出设备上显示有关的键盘信息.
在面版ButtonPanel上建立文本框并加键盘监听器.把面版ButtonPanel放到窗口ButtonFrame中.
以上就是土嘎嘎小编为大家整理的java记录输入法的代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!