找到关于 Swing 的133 篇文章
388 次浏览
JTable 是 JComponent 类的子类,可用于创建表格,其中信息显示在多行和多列中。从 JTable 中选择一个值时,会生成 TableModelEvent,通过实现 TableModelListener 接口来处理。在下面的程序中,如果 JTable 中没有可用行,我们可以显示“无记录可用”文本。示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; public class NoRecordTableTest extends JFrame { private JPanel panel; private JTable table; private JScrollPane scrollPane; public NoRecordTableTest() { panel = new JPanel(); panel.setLayout(new BorderLayout()); ... 阅读更多
292 次浏览
JTree 是一个组件,它以分层方式显示数据。用户可以展开或折叠各个子树。TreeNode 接口定义了 JTree 对象的节点必须实现的方法。DefaulMutableTreeNode 类提供了 TreeNode 接口的默认实现。我们可以通过覆盖 DefaultTreeCellRenderer 类的 getTreeCellRendererComponent() 方法来禁用 JTree 的叶子节点。语法 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) 示例 import java.awt.*; import javax.swing.tree.*; import javax.swing.*; public class JTreeLeafNodeDisableTest extends JFrame { private TreeNode treeNode; private JTree tree; public JTreeLeafNodeDisableTest() { setTitle("JTreeLeafNodeDisable Test"); ... 阅读更多
709 次浏览
JTree 是 JComponent 类的子类,可用于通过将节点添加到节点来显示具有分层属性的数据,并保持父节点和子节点的概念。树中的每个元素都成为一个节点。节点可以展开和折叠。我们可以使用 MouseAdapter 类的 mouseReleased() 方法实现对 JTree 每个节点的鼠标右键单击,并需要调用 JPopupMenu 类的 show() 方法以在树节点上显示弹出菜单。示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.tree.*; public class JTreeRightClickTest extends JFrame { public JTreeRightClickTest() { ... 阅读更多
7K+ 次浏览
JTable 是 JComponent 类的子类,用于显示复杂的数据结构。JTable 组件可以遵循模型视图控制器 (MVC) 设计模式以在行和列中显示数据。JTable 可以生成 TableModelListener、TableColumnModelListener、ListSelectionListener、CellEditorListener 和 RowSorterListener 接口。我们可以使用 DefaultTableModel 类的 removeRow() 方法从 JTable 中删除选定的行。语法 public void removeRow(int row) 示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.table.*; public class RemoveSelectedRowTest extends JFrame { private JTable table; private DefaultTableModel model; private Object[][] data; private String[] columnNames; private JButton button; public RemoveSelectedRowTest() { setTitle("RemoveSelectedRow ... 阅读更多
598 次浏览
JList 是 JComponent 类的子类,可用于显示对象列表,允许用户选择一个或多个项目。JList 可以生成 ListSelectiionListener 接口,需要实现抽象方法 valueChanged()。DefaultListModel 类提供了一个简单的列表模型实现,可用于管理 JList 控件显示的项目。我们可以使用 DefaultListModel 类的 addElement() 方法将项目添加到 JList,我们还可以使用 HTML 标签向 JList 添加具有不同字体的项目,例如,对于粗体样式文本, 对于斜体样式... 阅读更多
1K+ 次浏览
JComboBox 是 JComponent 类的子类,它是文本字段和下拉列表的组合,用户可以从中选择一个值。当用户在组合框上执行操作时,JComboBox 可以生成 ActionListener、ChangeListener 和 ItemListener 接口。我们可以通过扩展 JComboBox 类来定制组合框 (AutoCompleteComboBox),从而在用户从键盘输入值时实现自动完成 JComboBox。示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.plaf.basic.*; public class AutoCompleteComboBoxTest extends JFrame { private JComboBox comboBox; public AutoCompleteComboBoxTest() { setTitle("AutoCompleteComboBox"); ... 阅读更多
364 次浏览
JDialog 是 Dialog 类的子类,它在窗口右上角不包含最小化和最大化按钮。有两种类型的对话框,即模态和非模态。对话框的默认布局是 BorderLayout。在下面的程序中,我们可以通过定制 AlphaContainer 类并重写 paintComponent() 方法来实现透明的 JDialog。示例 import java.awt.*; import javax.swing.*; public class TransparentDialog { public static void main (String[] args) { JDialog dialog = new JDialog(); dialog.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); dialog.getRootPane().setOpaque(false); dialog.setUndecorated(true); dialog.setBackground(new Color (0, 0, ... 阅读更多
3K+ 次浏览
invokeLater() 方法是 SwingUtilities 类的静态方法,可用于在 AWT 事件分派线程中异步执行任务。SwingUtilities.invokeLater() 方法的工作方式与 SwingUtilities.invokeAndWait() 类似,不同之处在于它将请求放入事件队列并立即返回。invokeLater() 方法不会等待目标引用的 Runnable 中的代码块执行。语法 public static void invokeLater(Runnable target) 示例 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class InvokeLaterTest extends Object { private static void print(String msg) { String name = Thread.currentThread().getName(); System.out.println(name + ": " + msg); } ... 阅读更多
1K+ 次浏览
JButton 是 AbstractButton 的子类,可用于向 GUI 应用程序添加与平台无关的按钮。按下或单击 JButton 时,它可以生成 ActionListener 接口;它还可以生成 MouseListener 和 KeyListener 接口。通过覆盖 MouseListener 接口的 mouseEntered() 方法,我们可以实现鼠标移动到 JButton 上时的翻转效果。语法void mouseEntered(MouseEvent e)示例import java.awt.*; import java.awt.event.*; import javax.swing.*; public class RollOverButtonTest extends JFrame { private JButton button; public RollOverButtonTest() { setTitle("RollOverButton Test"); button = new JButton("Rollover Button"); button.addMouseListener(new MouseAdapter() { ... 阅读更多
浏览量:215
JCheckBox 是 JToggleButton 的子类,它可以是一个小的方框,处于选中或未选中状态。当我们点击 JCheckBox 时,它会自动在选中和未选中状态之间切换。每当复选框发生更改时,JCheckBox 可以生成 ActionListener 或 ItemListener。我们可以使用 setMnemonic() 方法为 JCheckBox 设置快捷键。示例import java.awt.*; import java.awt.event.*; import javax.swing.*; public class JCheckBoxShortCutKeyTest extends JFrame { private JCheckBox checkBox; public JCheckBoxShortCutKeyTest() { setTitle("JCheckBoxShortCutKey Test"); checkBox = new JCheckBox("Check or Press ALT-C"); checkBox.setBorder(BorderFactory.createLineBorder(Color.lightGray)); checkBox.setMnemonic('C'); ... 阅读更多