java中可以使用buffereader類來獲得控制臺輸入的回車鍵,示例如下:

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、翔安網(wǎng)站維護(hù)、網(wǎng)站推廣。
import?java.io.BufferedReader;
import?java.io.InputStreamReader;
public?class?Test?{
public?static?void?main(String?args[])?throws?Exception?{
System.out.println("輸入:");
BufferedReader?bf?=?new?BufferedReader(new?InputStreamReader(System.in));
String?str?=?"";
do?{
str?=?bf.readLine();
if?(str.length()?==?0)?{?//?如果輸入的字符串為空,則說明只輸入了一個回車
System.out.println("輸入的是回車!");
}?else?{
System.out.println("輸入內(nèi)容是:"?+?str);
}
}?while?(str.length()?!=?0);
}
}
這樣可以在輸入回車后提示“輸入的是回車!”并結(jié)束程序
import?java.awt.*;
import?java.awt.event.*;
import?javax.swing.*;
public?class?KeyCharEx?extends?JFrame?{
JLabel?la?=?new?JLabel("Enter鍵換背景顏色");
KeyCharEx()?{
super("請按Enter鍵");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new?FlowLayout());
this.add(la);
this.addKeyListener(new?MyKeyListener());//?整個界面添加鍵盤敲擊事件
setSize(250,?150);
setVisible(true);
}
class?MyKeyListener?extends?KeyAdapter?{
public?void?keyTyped(KeyEvent?e)?{//?應(yīng)該是這個方法?keyTyped?鍵盤按下,然后釋放
super.keyTyped(e);
int?r?=?(int)?(Math.random()?*?256);
int?g?=?(int)?(Math.random()?*?256);
int?b?=?(int)?(Math.random()?*?256);
switch?(e.getKeyChar())?{
case?'\n':
la.setText("r="?+?r?+?",g="?+?g?+?",b="?+?b);
getContentPane().setBackground(new?Color(r,?g,?b));
break;
case?'q':
System.exit(0);
}
}
}
public?static?void?main(String[]?args)?{
new?KeyCharEx();
}
}
使用的時候,只要將SwingUtils .enterPressesWhenFocused(JButton)這樣就可以實現(xiàn)回車時候,觸發(fā)按鈕。
另外文本輸入框回車觸發(fā)事件則是:SwingUtils .enterPressesWhenFocused(JTextField textField,ActionListener actionListener) 。其中actionListener是需要觸發(fā)的事件。
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
//SwingUtils 實用方法類
public class SwingUtils {
/**
* 對指定的button添加回車驅(qū)動事件的功能
* @param button
*/
public static void enterPressesWhenFocused(JButton button) {
button.registerKeyboardAction(button.getActionForKeyStroke(KeyStroke
.getKeyStroke(KeyEvent.VK_SPACE, 0, false)),
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, false),
JComponent.WHEN_FOCUSED);
button.registerKeyboardAction(button.getActionForKeyStroke(KeyStroke
.getKeyStroke(KeyEvent.VK_SPACE, 0, true)),
KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true),
JComponent.WHEN_FOCUSED);
}
import java.io.IOException;
public class TestEnter {
public static void main(String[] args) throws IOException{
while(true){
if(System.in.read() == '\n')
System.exit(0);
}
}
}
'\r'是回車,'\n'是換行,前者使光標(biāo)到行首,后者使光標(biāo)下移一格。通常用的Enter是兩個加起來。下面轉(zhuǎn)一篇文章。
回車和換行
今天,我總算搞清楚“回車”(carriage return)和“換行”(line feed)這兩個概念的來歷和區(qū)別了。
在計算機還沒有出現(xiàn)之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒里面,又有新的字符傳過來,那么這個字符將丟失。
于是,研制人員想了個辦法解決這個問題,就是在每行后面加兩個表示結(jié)束的字符。一個叫做“回車”,告訴打字機把打印頭定位在左邊界;另一個叫做“換行”,告訴打字機把紙向下移一行。
這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。
后來,計算機發(fā)明了,這兩個概念也就被般到了計算機上。那時,存儲器很貴,一些科學(xué)家認(rèn)為在每行結(jié)尾加兩個字符太浪費了,加一個就可以。于是,就出現(xiàn)了分歧。
Unix系統(tǒng)里,每行結(jié)尾只有“換行”,即“\n”;Windows系統(tǒng)里面,每行結(jié)尾是“換行回 車”,即“\r\n”;Mac系統(tǒng)里,每行結(jié)尾是“回車”。一個直接后果是,Unix/Mac系統(tǒng)下的文件在Windows里打 開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結(jié)尾可能會多出一個^M符號。
c語言編程時(windows系統(tǒng))\r 就是return 回到 本行 行首 這就會把這一行以前的輸出 覆蓋掉
如:
int main() {
cout "hahaha" "\r" "xixi" ;
}
最后只顯示 xixi 而 hahaha 被覆蓋了
\n 是回車+換行 把光標(biāo) 先移到 行首 然后換到下一行 也就是 下一行的行首拉
int main() {
cout "hahaha" "\n" "xixi" ;
}
則 顯示
hahaha
一下是自己的總結(jié)。
/t相當(dāng)于鍵盤的Tab鍵,/n換行New Line,/r回車Carriage Return,基本的概念應(yīng)該是回車表示回到最前面,換行表示換一行。
操作系統(tǒng)的不同,換行符操也不同:
/r Mac
/n Unix/Linux
/r/n Windows
可以,你給frame添加一個addKeyListener()方法,實現(xiàn)keyPressed()方法時捕獲keyCode,查一下enter鍵的值,如果和你捕獲的相等,就執(zhí)行你要執(zhí)行的代碼
分享文章:java回車鍵代碼 java中回車
網(wǎng)頁URL:http://chinadenli.net/article18/doopogp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、小程序開發(fā)、網(wǎng)站建設(shè)、網(wǎng)站營銷、移動網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)