如何在 Java 中实现可编辑的 JLabel?(英语)
JLabel
- 一个 JLabel 类可以扩展 JComponent 类,JLabel 的一个对象可以提供文本说明或关于一个 GUI 的信息。
- 一个 JLabel 能显示一行 只读文本、一个 图片 或兼具 文本 和 图片。
- JLabel 的重要方法包括 setText()、setIcon()、setBackground()、setOpaque()、setHorizontalAlignment()、setVerticalAlignment() 等。
- 一个 JLabel 可以显式生成一个 PropertyChangeListener 接口。
示例
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.text.*; public class JEditableLabel extends JFrame { public JEditableLabel() { setTitle("JEditableLabel"); setLayout(new FlowLayout()); final JLabel label = new JLabel(" Welcome to Tutorials Point"); final JTextField textfield = new JTextField(); final CardLayout cl = new CardLayout(); final JPanel panel = new JPanel(cl); panel.add(label, "label component"); panel.add(textfield, "textfield component"); add(panel); label.addMouseListener(new MouseAdapter() { public final void mouseEntered(MouseEvent evt) { textfield.setText(label.getText()); cl.show(panel, "textfield component"); } }); textfield.addMouseListener(new MouseAdapter() { public final void mouseExited(MouseEvent evt) { label.setText(textfield.getText()); cl.show(panel, "label component"); } }); setSize(375, 250); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } public static void main(String[] args) { new JEditableLabel(); } }
输出
广告