- 浏览: 703774 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
yzs5273:
没什么用。都试过了
WIN7下CS不能全屏的解决方法 -
di1984HIT:
不错,学习了
读取本地计算机中的安装程序列表 -
ffedu:
[flash=200,200][url][img][list] ...
linux/unix中如何用find命令详解,非常详细的介绍,比man find强100倍(转) -
lintghi:
...
Log4j使用相对路径指定log文件及使用总结 -
nick.s.ni:
唉,Java中引用的包没有介绍啊,如果数据库用UTF-8的格式 ...
Oracle 中Java 对象与PL/SQL类型的映射及使用(转)
package components;
/*
* TableRenderDemo.java requires no other files.
*/
import javax.swing.DefaultCellEditor;
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.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
/**
* TableRenderDemo is just like TableDemo, except that it
* explicitly initializes column sizes and it uses a combo box
* as an editor for the Sport column.
*/
public class TableRenderDemo extends JPanel {
private boolean DEBUG = true;
public TableRenderDemo(){
super(new GridLayout(1,0));
JTable table = new JTable(new MyTableModel());
table.setPreferredScrollableViewportSize(new Dimension(500,70));
//Create the scroll pane and add the table to it.
JScrollPane scrollPane = new JScrollPane(table);
//Set up column sizes
initColumnSizes(table);
//Fiddle with the Sport column's cell editors/renderers.
setUpSportColumn(table,table.getColumnModel().getColumn(1));
//Add the scroll pane to this panel
add(scrollPane);
}
/*
* This method picks good column sizes.
* If all column heads are wider than the column's cells'
* contents, then you can just use column.sizeWidthToFit().
*/
private void initColumnSizes(JTable table){
MyTableModel model = (MyTableModel)table.getModel();
TableColumn column = null;
Component comp = null;
int headerWidth = 0;
int cellWidth = 0;
Object [] longValues = model.longValues;
TableCellRenderer headerRenderer =
table.getTableHeader().getDefaultRenderer();
for(int i = 0;i < table.getColumnCount();i++){
column = table.getColumnModel().getColumn(i);
comp = headerRenderer.getTableCellRendererComponent(
null, column.getHeaderValue(),
false, false, 0, 0);
headerWidth = comp.getPreferredSize().width;
comp = table.getDefaultRenderer(
model.getColumnClass(i)).getTableCellRendererComponent(
table, longValues[i],
false, false, 0, i);
cellWidth = comp.getPreferredSize().width;
if(DEBUG){
System.out.println("Initializing width of column "
+ i +"."
+"headerWidth = "+headerWidth
+"cellWidth = "+cellWidth);
}
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
}
}
public void setUpSportColumn(JTable table,
TableColumn sportColumn){
JComboBox comboBox = new JComboBox();
comboBox.addItem("java");
comboBox.addItem(".NET");
comboBox.addItem("C++");
comboBox.addItem("JSP");
comboBox.addItem("PHP");
sportColumn.setCellEditor(new DefaultCellEditor(comboBox));
//Set up tool tips for the sport cells.
DefaultTableCellRenderer renderer =
new DefaultTableCellRenderer();
renderer.setToolTipText("Click for combo box");
sportColumn.setCellRenderer(renderer);
}
class MyTableModel extends AbstractTableModel {
private String[] columnNames = {"姓名",
"专业",
"工龄",
"健在"};
private Object[][] data = {
{"吕振","java",new Integer(3),new Boolean(true)},
{"张沛",".NET",new Integer(4),new Boolean(true)},
{"岳飞","weapon",new Integer(100),new Boolean(false)},
{"张艺谋","film",new Integer(50),new Boolean(true)}
};
public final Object[] longValues = {"吕振","None of the above",
new Integer(29),Boolean.TRUE};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
/*
* JTable uses this method to determine the default renderer/
* editor for each cell. If we didn't implement this method,
* then the last column would contain text ("true"/"false"),
* rather than a check box.
*/
public Class getColumnClass(int c) {
//实现了如果是boolean自动转成JCheckbox
/*需要自己的celleditor这么麻烦吧。jtable自动支持Jcheckbox,
* 只要覆盖tablemodel的getColumnClass返回一个boolean的class,
* jtable会自动画一个Jcheckbox给你,
* 你的value是true还是false直接读table里那个cell的值就可以*/
System.out.println("=============="+getValueAt(0, c).getClass());
return getValueAt(0, c).getClass();
}
/*
* Don't need to implement this method unless your table's
* editable.
*/
public boolean isCellEditable(int row, int col) {
//Note that the data/cell address is constant,
//no matter where the cell appears onscreen.
if (col < 2) {
return false;
} else {
return true;
}
}
/*
* Don't need to implement this method unless your table's
* data can change.
*/
public void setValueAt(Object value, int row, int col) {
if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value
+ " (an instance of "
+ value.getClass() + ")");
}
data[row][col] = value;
fireTableCellUpdated(row, col);
if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i=0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j=0; j < numCols; j++) {
System.out.print(" " + data[i][j]);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("TableRenderDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
TableRenderDemo newContentPane = new TableRenderDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
发表评论
-
Transfer
2017-06-29 23:03 0Find connections count: ... -
Discover the Mystery of Metaspace
2017-06-23 16:47 0The JDK 8 HotSpot JVM is now u ... -
Command Line JMX Client
2014-12-29 13:12 2606Command Line Parser: GNUComman ... -
Something about JVM class loading and initialization
2014-05-09 10:04 1046Class loading stages: Loadin ... -
When a class is loaded and initialized in JVM - Java
2014-05-08 19:09 1004from: http://javarevisited.blo ... -
【深入Java虚拟机】之四:类加载机制
2014-05-08 15:12 907转载请注明出处:http://blog.csdn.net/n ... -
Java Reflection - Dynamic Class Loading and Reloading
2014-05-08 12:04 951From: http://tutorials.jenkov. ... -
Java 类加载与初始化
2014-02-19 19:12 821转载自:http://www.cnblogs.c ... -
javax.management.StandardMBean: When and Why. (Reposted)
2013-12-26 15:34 1106Q: When is a Standard MBean no ... -
JVM调优的"标准参数"的各种陷阱(转)
2013-11-11 19:55 2072From: http://hllvm.group.itey ... -
Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning
2013-11-11 11:05 1034(From: http://www.oracle.com/ ... -
An article about TLAB
2013-11-11 10:57 763(From: https://blogs.oracle.co ... -
【JVM】HotSpot JVM内存管理和GC策略总结(转)
2013-11-07 23:39 600JVM的相关知识是学习java高级特性必须要去深入学习的。平 ... -
jstat分析VM内存
2013-11-07 16:41 915Jstat 是JDK自带的一个轻量级小工具。全称“Java ... -
java的GridBagLayout网格包布局管理器使用详解 (转)
2013-11-01 16:44 0网格包布局管理是最复 ... -
java动态跟踪分析工具BTrace实现原理
2013-09-01 12:34 1284转自:http://kenwublog.com ... -
Java synchronize用法(转)
2012-11-05 00:20 1227在多个并发线程之间共用资源,就需要进行同步处理。Java虚拟机 ... -
Interview material collection
2012-07-09 23:05 12011. Why can't static methods be ... -
不要重复 DAO!(转)
2011-12-29 22:17 1281使用 Hibernate 和 Spri ... -
JVM 诊断工具(转)
2011-11-25 12:00 17901.jinfo 描述:输出给定 java 进程所有的配置信 ...
相关推荐
首先,Swing提供了丰富的组件库,包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等,这些组件可以组合使用以创建各种复杂界面。例如,JFrame是窗口的基础,JPanel则可以作为容器...
本书可能涵盖了JFrame、JPanel、JLabel、JButton、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等常见组件的用法,以及如何通过布局管理器(如FlowLayout、BorderLayout、GridLayout和GridBagLayout...
Java Swing 是Java编程语言中用于构建图形用户界面(GUI)的一个强大的工具包。它是对早期的Abstract Window Toolkit (AWT) 的扩展,提供了更丰富的功能和更好的平台独立性。Swing 包含了大量的组件,使得开发者可以...
这些组件包括JFrame(主窗口)、JPanel(容器)、JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(多行文本区域)、JComboBox(下拉列表)和JCheckBox(复选框)等。这些组件可以组合使用,...
Java Swing是Java GUI(图形用户界面)编程的重要组成部分,它基于Java AWT(Abstract Window Toolkit)库,并提供了更丰富的组件和功能。Swing提供了一套轻量级的组件,允许开发者创建美观且功能强大的桌面应用程序...
Java Swing是Java编程语言中用于构建桌面应用程序图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。本教程将引导初学者深入理解Java Swing,帮助他们快速掌握界面设计的基础知识。 1. **...
1. **Swing组件**:Swing 提供了许多组件,如 JButton、JLabel、JTextField、JTextArea、JCheckBox、JRadioButton、JComboBox 等。这些组件是构建用户界面的基础,每个组件都有其特定的功能和用途。例如,JButton...
JavaSwing是Java的一种图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分,用于构建桌面应用程序。在“222陈芳林-米线店子系统_JavaSwing_javaswing_”这个项目中,开发者利用JavaSwing组件...
Swing 提供了各种组件,如按钮(JButton)、文本框(JTextField)、选择框(JCheckBox)、下拉列表(JComboBox)、表格(JTable)等,这些组件可以灵活组合,构建出符合需求的界面布局。在学生选课系统中,可能会...
Java Swing 是 Java GUI(图形用户界面)开发中的一个重要部分,它是AWT(Abstract Window Toolkit)的扩展,提供了更丰富的组件库和更好的外观与感觉。在Java Swing中,开发者可以创建功能强大且美观的桌面应用程序...
首先,Swing中的组件类主要包括JFrame、JPanel、JButton、JLabel、JTextArea、JTextField、JComboBox、JRadioButton、JCheckBox等。这些组件是构建GUI的基础,它们各自拥有特定的功能和用途。例如,JFrame是应用程序...
Java Swing 是Java GUI(图形用户界面)开发的重要库,它属于Java Foundation Classes (JFC)的一部分。Swing 提供了一套丰富的组件,用于构建桌面应用程序,这些组件比早期的AWT(Abstract Window Toolkit)更加现代...
Java Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。Swing提供了一套丰富的组件,用于创建桌面应用程序,包括按钮、文本框、菜单、滚动面板等。Swing是完全由...
Java Swing 是Java编程语言中用于构建桌面应用程序的图形用户界面(GUI)工具包。它属于Java Foundation Classes (JFC)的一部分,提供了丰富的组件库,使得开发者可以创建出具有专业外观和交互性的应用。本资源...
Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它提供了一系列的组件,使得开发者可以构建出功能丰富的桌面应用程序。这些组件模仿了多种操作系统,包括Windows的视觉样式和交互方式。在Java Swing中,有...
3. **选择组件**:有JComboBox(组合框)、JRadioButton(单选按钮)、JCheckBox(复选框)等,用于提供多种选项供用户选择。 4. **导航组件**:JMenuBar(菜单栏)、JMenu(菜单)、.JMenuItem(菜单项)以及...
Swing的核心组件包括JFrame(窗口)、JPanel(面板)、JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(文本区域)、JComboBox(组合框)、JCheckBox(复选框)、JRadioButton(单选按钮)...
1. **基础组件**:包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等基本GUI元素的使用,这些组件构成了用户与应用程序交互的基本元素。 2. **布局管理器**:Java Swing提供了...
1. **基础组件**:Swing中的基础组件包括JButton(按钮)、JLabel(标签)、JTextField(文本字段)、JTextArea(多行文本区域)、JComboBox(组合框)、JCheckBox(复选框)、JRadioButton(单选按钮)和...