我希望用户输入时间,所以就像12:00一样,但我需要弄清楚一些事情而且我很遗憾。
答案 0 :(得分:7)
答案是使用JFormattedTextField和MaskFormatter。
例如:
String mask = "##:##";
MaskFormatter timeFormatter = new MaskFormatter(mask);
JFormattedTextField formattedField = new JFormattedTextField(timeFormatter);
Java编译器将要求您在创建MaskFormatter时捕获或抛出ParseException,因此请务必执行此操作。
答案 1 :(得分:2)
或者只是抛弃您的文本字段并选择由JSpinner
分隔的两个JLabel
实例,其中包含冒号(或两个JTextField
个实例)。
不完全确定此解决方案对用户更直观,但我认为是这样。
答案 2 :(得分:0)
对旧问题的迟到答案;利用<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
<select id="state" class="js-example-basic-single" type="text" style="width:90%">
<option value="AL">Alabama</option>
<option value="WY">Wyoming</option>
</select>
<br>
<br>
<input id="new-state" type="text" />
<button type="button" id="btn-add-state">Set state value</button>
可以实现这三个要求。
非生产质量代码可能是这样的
DocumentFilter