我有一个登录表单,用户可以输入他的凭据进行登录.我有一个JLabel用于显示文本告诉用户用户名不能为空的文本.用户在文本字段为空时单击登录按钮后显示此标签.
我想在用户开始在文本字段中输入的那一刻,带有信息的标签应该消失.我如何实现这种行为?
这是代码:
public class JTextFiledDemo {
private JFrame frame;
JTextFiledDemo() {
frame = new JFrame();
frame.setVisible(true);
frame.setSize(300, 300);
frame.setLayout(new GridLayout(4, 1));
frame.setLocationRelativeTo(null);
iniGui();
}
private void iniGui() {
JLabel error = new JLabel(
"<html><font color='red'> Username cannot be empty!<></html>");
error.setVisible(false);
JButton login = new JButton("login");
JTextField userName = new JTextField(10);
frame.add(userName);
frame.add(error);
frame.add(login);
frame.pack();
login.addActionListener((ActionEvent) -> {
if (userName.getText().equals("")) {
error.setVisible(true);
}
});
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() { …Run Code Online (Sandbox Code Playgroud) 我iText用来创建我的PDF文件.
我想使用我在这里找到的方法在文档中的某个特定位置放置文本:itext定位文本绝对.
但是,我无法弄清楚在哪里可以找到页面坐标系的原点.
bottom left corner?top right corner?bottom right corner?top left corner?
这个起源在哪里?
我使用a JDateChooser来允许用户输入日期.如何在出现的文本字段上禁用编辑选项?我不希望用户在该文本字段中键入任何内容 - 只能通过单击日历输入输入.我如何实现这一目标?
以下是我的代码:
public class PQReport {
// product quotations report
public JPanel panel;
public PQReport() {
panel = new JPanel();
panel.setPreferredSize(new Dimension(125, 300));
initUI();
}
public void initUI() {
panel.setLayout(new net.miginfocom.swing.MigLayout());
JDateChooser chooser = new JDateChooser();
chooser.setLocale(Locale.US);
//chooser.isEditable(false);
chooser.setDateFormatString("yyyy-MM-dd");
panel.add(new JLabel("Date of Birth:"));
panel.add(chooser);
panel.add(new JButton("click"));
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
PQReport rep = new PQReport();
JFrame f = new JFrame();
f.setSize(400, 400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(rep.panel); …Run Code Online (Sandbox Code Playgroud) 我想捕获一个人输入密码所花费的时间(以毫秒为单位),即从第一次按键到该人按下Enter按钮的时间。为了实现这一点,我有以下代码:
import tkinter as tk
import time
class MyApp(object):
start=0.0
end=0.0
total_time=0.0
def __init__(self, master):
self.pass1 = tk.Entry(master,show="*")
self.pass1.bind('<Key>', self.callback1)
self.pass1.pack()
def callback1(self, event): # Called Only by first key press
self.start=time.time()*1000.0 # start variable must be modified ONLY by first key press
def callback2(self,event): # called by Enter Key press
self.end=time.time()*1000.0
self.total_time=self.start-self.end
print(self.totaltime)
root = tk.Tk()
app = MyApp(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我不能够绑定callback1和callback2上pass1。我想要的是当一个人按下他们密码的第一个键时,start设置为当前时间,而当人按下时Enter end初始化为当前时间。我希望这两个人能给我一个大概的时间。
我如何修改上面的程序来完成我想要的?谢谢。
我正在学习JavaFX.我遇到了一个问题; 我无法弄清楚JavaFX中Swing JFrame的等价物.是场景还是舞台?
我有一个JTable.此表使用我设计的自定义模型; 自定义模型是extends AbstractTableModel.我有一个按钮,用户可以删除选定/突出显示的行.
我试过这段代码,但它给了我一个类强制转换异常 -
myTableModel cannot be cast to DefaultTableModel.
Run Code Online (Sandbox Code Playgroud)
下面是代码.
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.removeRow(table.convertRowIndexToModel(table.getSelectedRow()));
model.fireTableDataChanged();`
Run Code Online (Sandbox Code Playgroud)
我在网上搜索过,但它总是DefaultTableModel- 但我有AbstarctTableModel.
我们如何解决这个问题?
好吧,这可能听起来好像是一个重复的问题,但事实并非如此.我在这里就这个问题提出了这个问题.我已经重写了我DocumentFilter使用正则表达式.在验证一个人的名字,我想只有以下字符[a-zA-Z],',\S和..
我写了我的正则表达式,希望它能解决这个问题.它按照我想要的方式工作但是当我尚未设置它时它不允许数字这一事实令我感到困惑.
问题:为什么regex不允许数字?
这是正则表达式[\\_\\(\\)@!\"#%&*+,-:;<>=?\\[\\]\\^\\~\\{\\}\\|],它不应该允许输入的内容在下面的代码中注释:
我的DocumentFilter如下:
public class NameValidator extends DocumentFilter{
@Override
public void insertString(FilterBypass fb, int off
, String str, AttributeSet attr)
throws BadLocationException
{
// remove 0-9 !"#$%&()*+,-/:;<=>?@[\]^_`{|}~
fb.insertString(off, str.replaceAll("^[\\_\\(\\)@!\"#%&*+,-:;<>=?\\[\\]\\^\\~\\{\\}\\|]", ""), attr);
}
@Override
public void replace(FilterBypass fb, int off
, int len, String str, AttributeSet attr)
throws BadLocationException
{
// remove 0-9 !"#$%&()*+,-/:;<=>?@[\]^_`{|}~
fb.replace(off, len, str.replaceAll("^[\\_\\(\\)@!\"#%&*+,-:;<>=?\\[\\]\\^\\~\\{\\}\\|]", ""), attr); …Run Code Online (Sandbox Code Playgroud) 这是我的表格:
+---------------------+--------+----------+
| date | sku | quantity |
+---------------------+--------+----------+
| 2017-08-23 14:58:00 | 123333 | 2 |
| 2017-08-23 14:58:00 | 123333 | 1 |
| 2017-08-23 14:58:00 | 123333 | 1 |
| 2017-08-23 14:58:00 | 123337 | 2 |
| 2017-08-23 14:58:00 | 123335 | 1 |
| 2017-08-23 14:58:00 | 123331 | 1 |
| 2017-08-23 14:58:00 | 123332 | 2 |
| 2017-08-23 14:58:00 | 123333 | 1 |
| 2017-08-23 14:58:00 | 123334 | …Run Code Online (Sandbox Code Playgroud) java ×6
swing ×5
javafx ×2
jtextfield ×2
binding ×1
itext ×1
jcalendar ×1
jdatechooser ×1
jframe ×1
jlabel ×1
jtable ×1
key-bindings ×1
mysql ×1
pdf ×1
python ×1
regex ×1
sql ×1
sql-order-by ×1
string ×1
text ×1
tkinter ×1
validation ×1