一段用NetBeans生成的 有些没用的直接忽略就可以的 问题在前十来行的 e.consume(); 是这样的 本来是文本框加个事件不是数字不能输入 结果出现了 什么都能输入 而且退格左右移动光标都废了 是否数字判断也没问题 !
package cn.itcast_07;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
/**
*
-
@author Hunter
*/
public class NewJFrame extends javax.swing.JFrame {public NewJFrame() {
initComponents();
onlynum();
init();
}public void onlynum() {
this.firstNumber.addKeyListener(new KeyAdapter() {@Override public void keyPressed(KeyEvent e) { char ch = e.getKeyChar(); if (!(ch > '0' && ch < '9')) { e.consume(); } } }); this.secondNumber.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { char ch = e.getKeyChar(); if (!(ch > '0' && ch < '9')) { e.consume(); } } });
}
private void init() {
this.setTitle("模拟四呢运算");
}private void initComponents() {
jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); firstNumber = new javax.swing.JTextField(); secondNumber = new javax.swing.JTextField(); result = new javax.swing.JTextField(); operator = new javax.swing.JComboBox(); jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jLabel1.setText("第一个数"); jLabel2.setText("第二个数"); jLabel3.setText("结果"); operator.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "+", "-", "*", "/" })); jButton1.setText("计算"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(25, 25, 25) .addComponent(firstNumber) .addGap(20, 20, 20)) .addGroup(layout.createSequentialGroup() .addGap(37, 37, 37) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 26, Short.MAX_VALUE))) .addComponent(operator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(0, 22, Short.MAX_VALUE) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 57, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(75, 75, 75) .addComponent(jLabel3) .addGap(62, 62, 62)) .addGroup(layout.createSequentialGroup() .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, 79, Short.MAX_VALUE) .addComponent(result)) .addGap(0, 0, Short.MAX_VALUE)))) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(33, 33, 33) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel2) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(firstNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(secondNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(result, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(operator, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE) .addComponent(jButton1) .addContainerGap()) ); pack();
}// //GEN-END:initComponents
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
//获取第一个操作数
String firstNumberString = this.firstNumber.getText().trim();
//获取第二个操作数
String secondNumberString = this.secondNumber.getText().trim();
//获取运算符
String operatorString = this.operator.getSelectedItem().toString();////第一个数转成int
int firstNumber = Integer.parseInt(firstNumberString);
//第二个数转成int
int secondNumber = Integer.parseInt(secondNumberString);int resultNumber = 0; switch (operatorString) { case "+": resultNumber = firstNumber + secondNumber; break; case "-": resultNumber = firstNumber - secondNumber; break; case "*": resultNumber = firstNumber * secondNumber; break; case "/": resultNumber = firstNumber / secondNumber; break; } this.result.setText(String.valueOf(resultNumber));
}//GEN-LAST:event_jButton1ActionPerformed
/**
-
@param args the command line arguments
*/
public static void main(String args[]) {try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;} }
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame.class
.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
///* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JTextField firstNumber;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JComboBox operator;
private javax.swing.JTextField result;
private javax.swing.JTextField secondNumber;
// End of variables declaration//GEN-END:variables
} -