计算带括号的四则运算表达式,这个实现方式你想过吗?

import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java.awt.event.*; public class Skin extends JFrame { public static void main(String[] args) { Skin s = new Skin(); s.setVisible(true); // JOptionPane.showMessageDialog(H, "Printing complete"); } private JLabel jLabel; private JLabel jLabel2; private JTextField jTextField; private JTextField jTextField2; private JButton jButton; private JButton jButton2; public Skin() { super(); this.setSize(300, 200); this.getContentPane().setLayout(null); this.add(getJLabel(), null); this.add(getJLabel2(), null); this.add(getJTextField(), null); this.add(getJTextField2(), null); this.add(getJButton(), null); this.add(getJButton2(), null); this.setTitle("Skin"); } private javax.swing.JLabel getJLabel() { if (jLabel == null) { jLabel = new javax.swing.JLabel(); jLabel.setBounds(34, 49, 53, 18); jLabel.setText("公式"); } return jLabel; } private javax.swing.JLabel getJLabel2() { if (jLabel2 == null) { jLabel2 = new javax.swing.JLabel(); jLabel2.setBounds(34, 70, 53, 18); jLabel2.setText("结果"); } return jLabel2; } private javax.swing.JTextField getJTextField() { if (jTextField == null) { jTextField = new javax.swing.JTextField(); jTextField.setBounds(96, 49, 160, 20); } return jTextField; } private javax.swing.JTextField getJTextField2() { if (jTextField2 == null) { jTextField2 = new javax.swing.JTextField(); jTextField2.setBounds(96, 70, 160, 20); } return jTextField2; } private javax.swing.JButton getJButton() { if (jButton == null) { jButton = new javax.swing.JButton(); jButton.setBounds(80, 110, 71, 27); jButton.setText("OK"); jButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { Cal c = new Cal(); jTextField2.setText(c.Calculate(jTextField.getText())); } catch (Exception ee) { // TODO: handle exception jTextField2.setText(ee.toString()); } } }); } return jButton; } private javax.swing.JButton getJButton2() { if (jButton2 == null) { jButton2 = new javax.swing.JButton(); jButton2.setBounds(180, 110, 71, 27); jButton2.setText("QUIT"); jButton2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { System.exit(0); } catch (Exception ee) { // TODO: handle exception jTextField2.setText(ee.toString()); } } }); } return jButton2; } }
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.security.auth.login.Configuration; public class Cal { public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver"; public static final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";//需要修改为oracle的数据库链接信息 public static final String DBUSER = "scott";//oracle用户名 public static final String DBPASS = "tiger";//oracle密码 public String Calculate(String s) throws SQLException, ClassNotFoundException { String result = null; Class.forName(DBDRIVER); Connection conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); Statement stmt = conn.createStatement(); String sql = "select " + s + " from dual"; System.out.println(sql); ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { result = rs.getString(1);//这里注意DUA取结果的话必须-->getString(1)而不可以是getString(0). System.out.println(result); } return result; } }

这样实现的优点是可以把各种复杂的运算特殊情况交给oracle来处理,节省了代码,也减轻了工作量。

缺点当然很明显了。。。得配置oracle信息。

界面效果:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值