- 浏览: 732998 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lingsuch:
Android网络连接判断与处理 -
月光照着我:
写的不错,作为笔记了
Android中LayoutInflater的使用 -
智博王锋:
好文章是要顶的!
Android中LayoutInflater的使用 -
云南白药:
...
Android中LayoutInflater的使用 -
万新one:
理解了许多。解释的不错。3Q.
Android中LayoutInflater的使用
import java.awt.BorderLayout; import java.awt.Color; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import javax.swing.DefaultCellEditor; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumnModel; /** * JTable的实用小例子 */ public class JTableComboBox { private JFrame frame = null; private JTable table = null; private Table_Model model = null; private JScrollPane s_pan = null; private JButton button_1 = null, button_2 = null, button_3 = null; private JPanel pane = null; public JTableComboBox() { frame = new JFrame("JTableTest"); pane = new JPanel(); button_1 = new JButton("清除数据"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { removeData(); } }); button_2 = new JButton("添加数据"); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { addData(); } }); button_3 = new JButton("保存数据"); button_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { saveData(); } }); pane.add(button_1); pane.add(button_2); pane.add(button_3); model = new Table_Model(20); table = new JTable(model); table.setBackground(Color.white); String[] age = { "16", "17", "18", "19", "20", "21", "22" }; JComboBox com = new JComboBox(age); TableColumnModel tcm = table.getColumnModel(); tcm.getColumn(3).setCellEditor(new DefaultCellEditor(com)); tcm.getColumn(0).setPreferredWidth(50); tcm.getColumn(1).setPreferredWidth(100); tcm.getColumn(2).setPreferredWidth(50); s_pan = new JScrollPane(table); frame.getContentPane().add(s_pan, BorderLayout.CENTER); frame.getContentPane().add(pane, BorderLayout.NORTH); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.setVisible(true); } private void addData() { model.addRow("李逵", true, "19"); table.updateUI(); } private void removeData() { model.removeRows(0, model.getRowCount()); table.updateUI(); } // 保存数据,暂时是将数据从控制台显示出来 private void saveData() { int col = model.getColumnCount(); int row = model.getRowCount(); for (int i = 0; i < col; i++) { System.out.print(model.getColumnName(i) + "\t"); } System.out.print("\r\n"); for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { System.out.print(model.getValueAt(i, j) + "\t"); } System.out.print("\r\n"); } System.out.println("------------------------------------"); } public static void main(String args[]) { new JTableComboBox(); System.out.println("按下保存按钮将会把JTable中的内容显示出来\r\n------------------------------------"); } } /** * TableModel类,继承了AbstractTableModel * * @author 五斗米 * */ @SuppressWarnings("unchecked") class Table_Model extends AbstractTableModel { private static final long serialVersionUID = -7495940408592595397L; private Vector content = null; private String[] title_name = { "ID", "姓名", "性别", "年龄" }; public Table_Model() { content = new Vector(); } public Table_Model(int count) { content = new Vector(count); } public void addRow(String name, boolean sex, String age) { Vector v = new Vector(4); v.add(0, new Integer(content.size())); v.add(1, name); v.add(2, new Boolean(sex)); v.add(3, age); content.add(v); } public void removeRow(int row) { content.remove(row); } public void removeRows(int row, int count) { for (int i = 0; i < count; i++) { if (content.size() > row) { content.remove(row); } } } /** * 让表格中某些值可修改,但需要setValueAt(Object value, int row, int col)方法配合才能使修改生效 */ public boolean isCellEditable(int rowIndex, int columnIndex) { if (columnIndex == 0) { return false; } return true; } /** * 使修改的内容生效 */ public void setValueAt(Object value, int row, int col) { ((Vector) content.get(row)).remove(col); ((Vector) content.get(row)).add(col, value); this.fireTableCellUpdated(row, col); } public String getColumnName(int col) { return title_name[col]; } public int getColumnCount() { return title_name.length; } public int getRowCount() { return content.size(); } public Object getValueAt(int row, int col) { return ((Vector) content.get(row)).get(col); } /** * 返回数据类型 */ public Class getColumnClass(int col) { return getValueAt(0, col).getClass(); } }
发表评论
-
Swing中引入Android的NinePatch技术,让Swing拥有Android的外观定制能力
2012-09-21 09:22 1631【摘要】 本文诣在 ... -
JavaSwing实现支持合并拆分的JTable
2010-12-16 15:39 1980GridBagModel:抽象模型接口。该接口用于描述表格中单 ... -
配合滚动面板实现JTable上下翻页的效果
2010-12-16 14:26 3427import java.awt.BorderLayout; ... -
JScrollBar简单演示例子
2010-12-06 19:28 6628import java.awt.*; import java ... -
点击jtable的表头,数据会根据根据表头来排序
2010-12-06 11:47 5142import javax.swing.JFrame; imp ... -
重写JSplitPane的BasicSplitPaneUI
2010-09-18 13:39 1581import java.awt.Color; import ... -
Swing窗口初始最大化的方法
2010-08-20 11:09 79131.设置窗口最大(伪最大化) JFrame frame =n ... -
Tree目录实现拖拽功能演示实例(DragAndDrop)
2010-08-10 16:49 1802import java.awt.BorderLayout; ... -
设置JTextPane指定内容的颜色
2010-05-21 14:29 1373package Assis; import java.a ... -
ScaleImageDemo图像缩小与放大演示
2010-05-12 14:59 2126package Assis; import java.a ... -
TreesDemo
2010-05-04 11:19 1094import java.awt.*; import java ... -
TableDemo
2010-05-04 11:17 1206import javax.swing.JTable; imp ... -
分割面板演示JSplitPaneDemo
2010-05-04 11:12 1400//Java Swing 带分隔条的面板代码 impor ... -
StylesExample8
2010-04-08 12:55 1212import javax.swing.*; import j ... -
StylesExample7
2010-04-08 12:54 1008import javax.swing.*; import j ... -
StylesExample6
2010-04-08 12:52 1072import javax.swing.*; import j ... -
StylesExample5
2010-04-08 12:51 1003import javax.swing.*; import j ... -
StylesExample4
2010-04-08 12:50 1120import javax.swing.*; import j ... -
StylesExample3
2010-04-08 12:50 1013import javax.swing.*; import j ... -
StylesExample2
2010-04-08 12:49 1063import javax.swing.*; import j ...
相关推荐
6. **Swing小部件**:如JTable、JList和JTree,用于展示表格数据、列表和树形结构数据。 7. **外观和感觉**:Swing允许改变组件的外观,通过LookAndFeel类可以实现系统默认样式或自定义样式。 8. **模型-视图-控制...
- **JComboBox**: JComboBox提供了一个下拉列表,用户可以从预定义的选项中选择一个。 - **JCheckBox**和**JRadioButton**: 分别代表复选框和单选按钮,用于提供多选或二选一的选择。 2. **Swing组件事件处理** ...
在"组件示例源代码"中,我们可以找到这些概念的具体应用,通过阅读和理解代码,可以加深对Swing组件的理解,并能熟练地在实际项目中使用它们来创建用户友好的Java桌面应用。这些例子可能涵盖了各种组件的创建、布局...
8. **JTable** 和 **JTree**: 用于展示数据的表格和树形结构。 9. **JTabbedPane**: 用于创建带有多个页面的组件。 10. **JMenu** 和 **JMenuItem**: 构建菜单栏和下拉菜单。 **事件处理** Swing使用事件监听器模型...
7. JComboBox和JList:下拉列表和列表组件常用于提供选项选择。它们可以动态加载数据,并且支持用户自定义选择。 8. JTable:用于展示二维数据,如电子表格。实例中会展示如何创建表格,设置列宽,以及处理表格事件...
此外,JCheckBox和JRadioButton用于创建复选框和单选按钮,JComboBox用于下拉选择框,JList和JTable用于展示列表和表格数据。 事件处理是GUI编程的另一个重要方面。当我们点击按钮或与界面交互时,需要处理这些事件...
6. **JComboBox**: 下拉列表选择框,允许用户从预定义的选项中选择一个。 7. **JList**: 显示一组可选择的项目,用户可以通过点击或使用箭头键进行选择。 8. **JTable**: 用于展示二维数据,类似电子表格,可以...
6. **JComboBox, JList, JTable**: 这些组件用于创建下拉列表、列表视图和表格数据展示,常用于数据选择和展示。 7. **JCheckBox, JRadioButton**: 用于创建复选框和单选按钮,提供多种选择功能。 8. **JMenu, ...
6. **JComboBox**和**JList**:提供下拉选择和列表选择功能,适用于选项展示。将学习到如何填充数据、监听选择变化。 7. **JTable**:用于展示二维数据,可进行排序和筛选。通过实例,你将了解如何创建表格模型、...
6. **JComboBox**:下拉列表框,用户可以从预设的选项中选择。开发者可以通过添加Items来填充下拉框。 7. **JCheckBox**和**JRadioButton**:复选框和单选按钮,用于提供多选或二选一的选项。它们通常会配合...
9.3.4 接口中方法无法使用的修饰符 165 9.4 接口与抽象类 166 9.4.1 语法上的不同 167 9.4.2 具体含义的不同 167 9.5 基于接口的多态 169 9.6 接口与回调 170 9.7 instanceof的使用 172 9.7.1 基本...
1. **组件使用**:Swing 包含了各种组件,如 JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(文本区域)、JComboBox(组合框)等。通过这些源代码,读者可以学习如何创建、配置和布局这些...
在学习Swing时,开发者需要理解基本的组件,如JFrame(主窗口)、JPanel(容器)、JButton(按钮)、JLabel(标签)、JTextArea(文本区域)、JComboBox(下拉列表)等。同时,布局管理器如FlowLayout、BorderLayout...
开发者可能使用了JFrame作为主窗口,JTable显示员工列表,JButton触发操作,JOptionPane进行提示对话框,JDialog创建弹出式窗口,以及JComboBox实现下拉选择功能等。 数据库方面,项目选择了MySQL,这是一种流行的...
1. **Swing组件**:Swing提供了一系列组件,如JButton、JLabel、JTextField、JTextArea、JComboBox、JTable等,这些组件使得开发者能够创建各种类型的用户界面。每个组件都有丰富的API,可以定制外观和行为。 2. **...
5. `JComboBox`和`JList`:创建下拉列表或列表选择。 6. `JTable`:展示数据的表格形式。 7. `JRadioButton`和`JCheckBox`:定义单选按钮和复选框。 8. `JMenuBar`和`JMenu`:创建菜单栏和子菜单。 9. `JOptionPane`...