參考資料:xietansheng-JavaSwing圖形界面開發
1. 概述
官方JavaDocsApi: javax.swing.JTextField
JTextField
,文本框。JTextField 用來編輯單行的文本。
JTextField 常用構造方法:
/* * 參數說明: * text: 默認顯示的文本 * columns: 用來計算首選寬度的列數;如果列設置為 0,則首選寬度將是組件實現的自然結果 */ JTextField() JTextField(String text) JTextField(int columns) JTextField(String text, int columns)
JTextField 常用方法:
// 獲取文本框中的文本 String getText() // 設置文本框的 文本、字體 和 字體顏色 void setText(String text) void setFont(Font font) void setForeground(Color fg) // 設置顏色,分別為: 光標顏色、呈現選中部分的背景顏色、選中部分文本的顏色、不可用時文本的顏色 void setCaretColor(Color c) void setSelectionColor(Color c) void setSelectedTextColor(Color c) void setDisabledTextColor(Color c) // 設置文本內容的水平對齊方式 void setHorizontalAlignment(int alignment) // 設置文本框是否可編輯 void setEditable(boolean b) /* 下面方法定義在 java.awt.Component 基類中 */ // 判斷組件當前是否擁有焦點 boolean isFocusOwner() // 設置組件是否可用 void setEnabled(boolean b)
JTextField 復制粘貼相關方法:
// 設置光標開始位置,selectionStart >= 0 void setSelectionStart(int selectionStart) // 設置光標結束位置,selectionEnd >= selectionStart void setSelectionEnd(int selectionEnd) // 復制選中部分文本 void copy() // 剪切選中部分文本 void cut() // 粘貼文本到文本框 void paste()
JTextField 常用監聽器:
// 添加焦點事件監聽器 void addFocusListener(FocusListener listener) // 添加文本框內的 文本改變 監聽器 textField.getDocument().addDocumentListener(DocumentListener listener) // 添加按鍵監聽器 void addKeyListener(KeyListener listener)
2. 實例代碼
package com.he.swing2; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * @description: JavaSwing_2_6_JTextField 文本框 * @author: ShouSi * @createDate: 2021/11/10 */ public class JavaSwing_2_6_JTextField { public static void main(String[] args) throws AWTException { JFrame jf = new JFrame("測試窗口"); jf.setSize(300, 300); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JPanel panel = new JPanel(); // 創建文本框,指定可見列數為8列 final JTextField textField = new JTextField(8); textField.setFont(new Font(null, Font.PLAIN, 20)); panel.add(textField); // 創建一個按鈕,點擊后獲取文本框中的文本 JButton btn = new JButton("提交"); btn.setFont(new Font(null, Font.PLAIN, 20)); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("提交: " + textField.getText()); } }); panel.add(btn); jf.setContentPane(panel); jf.setVisible(true); } }
結構展示: