在我的一个java应用程序中,有一个用户应输入时间的字段.我知道,我可以简单地将它保持为正常状态JTextField,在验证时我可以检查值等等......
但我认为有一种更好的方式..
例如,如果这是一个有日期的问题,那么JXDatePicker(随附swingx)可以非常方便地使用.最终,用户选择保证是日期.
同样,必须有更好的时间选择方式.如果您知道更好的解决方案,有人会分享您的知识.
任何想法都表示赞赏.谢谢!
我在使用Netbeans 7.2的JAVA中使用文本字段自动计算时遇到问题
我的问题是我是否会在文本字段中输入数值,即(入场费,月费,运费等)自动添加,然后在文本字段中输入数值,即(会费)自动从上面的自动添加中减去,然后再单击提交用于在数据库中插入总值的按钮,以便在单击"提交"按钮之前如何在"文本字段(总计)"中获取这些数值的结果.
请检查快照:
图片http://s14.postimage.org/95zxgp575/image.jpg
我的源代码:
try
{
String insrt = "Insert into fee (admission, monthly, transport, dues, total) values (?, ?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(insrt);
pstmt.setString(1, adm_fee.getText());
pstmt.setString(2, mnth_fee.getText());
pstmt.setString(3, trnsprt_fee.getText());
pstmt.setString(4, dues_fee.getText());
pstmt.setString(5, total_fee.getText());
pstmt.executeUpdate();
JOptionPane.showMessageDialog(null,"Record successfully inserted");
}
catch (Exception exp)
{
JOptionPane.showMessageDialog(null, exp);
}
Run Code Online (Sandbox Code Playgroud)
我一直致力于个人项目,以便在编程方面做得更好.我的目标是让它更加强大,我刚刚开始.我是现任计算机科学专业的学生.无论如何,我正在努力制作一部分程序,如图所示.我计算小时工资并提供一些我尚未实施的产出.我正在使用DocumentListener,因此它会自动计算.当文本从一个盒子中完全删除时,我收到一个错误.我试图用if语句修复它:
if (tipMon.equals("") || tipMon == null) {
tipMon.setText("0");
}
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的.它还没有完成,我为noob代码道歉.我在两个月前开始实际编码.
import java.awt.GridLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JOptionPane;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.Document;
import javax.swing.text.FieldView;
public class deliveryDocListener extends JFrame implements ActionListener,
DocumentListener{
private JLabel mon, tues, wed, thurs, fri, sat, sun, hourlyWage, blank, row2, monWage,
tuesWage,wedWage,thursWage, friWage, satWage, sunWage, total, totalTips, totalHours,
totalHourlyEarnings, totalPay, weekPay;
private JTextField hourlyWageInput, tipMon, tipTues, tipWed, tipThurs, tipFri, tipSat, tipSun,
hourMon, hourTues, hourWed, hourThurs, …Run Code Online (Sandbox Code Playgroud) 如果用户输入其他字符,我希望用户只输入字母或空白区域,我想用jOptionPane给出消息我已经搜索过,我试过下面的代码
if (!(Pattern.matches("^[a-zA-Z]+$", answerField1.getText())))
JOptionPane.showMessageDialog(null, "Please enter a valid character", "Error", JOptionPane.ERROR_MESSAGE);
Run Code Online (Sandbox Code Playgroud)
但现在无论我输入它都会给出错误
现在我改变了代码
Pattern letterPattern = Pattern.compile("^[a-zA-Z]+$");
if (!(letterPattern.matcher(answerField1.getText()).matches()))
{
JOptionPane.showMessageDialog(null, "Please enter a valid character", "Error", JOptionPane.ERROR_MESSAGE);
}
Run Code Online (Sandbox Code Playgroud)
现在它只给消息第一次用户输入号码.我怎么能解决这个问题
我需要JTextField通过允许用户仅输入整数值来验证a ,如果用户输入除数字以外的任何字符,JOptionPane.show则应显示消息框,表明输入的值不正确且仅允许整数.我已将其编码为数字值,但我还需要丢弃字母
public void keyPressed(KeyEvent EVT) {
String value = text.getText();
int l = value.length();
if (EVT.getKeyChar() >= '0' && EVT.getKeyChar() <= '9') {
text.setEditable(true);
label.setText("");
} else {
text.setEditable(false);
label.setText("* Enter only numeric digits(0-9)");
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个JFormattedTextField应该能够接受超过3位十进制数字的双数字.它接受条目0.1,0.01,0.001但拒绝0.0001和数字与十进制数字.
这就是我的代码现在的工作方式:
DecimalFormat decimalFormat = new DecimalFormat("0.0E0");
JFormattedTextField txtfield = new JFormattedTextField(decimalFormat.getNumberInstance(Locale.getDefault()));
Run Code Online (Sandbox Code Playgroud)
如何让我的文本字段接受超过3位十进制数字的数字?
我限制我JTextFields只接受数字.我正在使用以下代码.
// my textboxes
t1=new JTextField(10);
t2=new JTextField(10);
t3=new JTextField(10);
// for the first one
t1.addKeyListener(new KeyAdapter() {
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if (!((c >= '0') && (c <= '9') ||
(c == KeyEvent.VK_BACK_SPACE) ||
(c == KeyEvent.VK_DELETE))) {
getToolkit().beep();
e.consume();
}
}
});
Run Code Online (Sandbox Code Playgroud)
假设我有20个texboxes需要相同的验证检查.那么我们需要写这个代码20次吗?我可以写一个通用的方法来实现它吗?我是新来的Swing.