JComponentPack Changelog

What's new in JComponentPack 3.6

Oct 9, 2014
  • New Features:
  • The JMediaPlayer control is a MPlayer front end, support full screen, can be embedded into the Swing panel, can play almost all popular audio and video formats, relative to other players, resources occupy very small, do not need any system decoder can play a variety of media format.
  • Adds an elegant JTreeTable control, You can directly put your JTree on the JTreeTable control, and then add an adapter to provide data on the line, use a common JTree does not display the Checkbox, using our XTree control can display Checkbox!
  • JDataGrid control added many new features:
  • Import and export the styled text from the Excel file, From the cell properties dialog box to set the font color and other attributes, can also be a separate set the cell characters in superscript, subscript, font, color and other attributes, these attributes of the text can be saved in the Excel file .
  • Cell text support setting the superscript and subscript, can display H2O, m3, M2 etc. these chemical symbols and cubic meters, per square metre unit.
  • Improving Large data support: In order to improve the support of a large amount of data, the new version has done a lot of adjustments, in order to maintain compatibility, the default is not open this function, use please call below the code before the instantiation of JDataGridBean :
  • JDataGrid.setDefaultLargeModelEnabled (true);
  • JDataGridBean bean = new JDataGridBean();
  • JDataGrid dataGrid = bean.getDataGrid();
  • AbstractDataGridModel model = (AbstractDataGridModel) (dataGrid.getModel);
  • The original code of DefaultDataGridModel model = (DefaultDataGridModel) (dataGrid.getModel); can be normal use, but the proposal to change the AbstractDataGridModel: AbstractDataGridModel is a DefaultDataGridModel and LargeDataGridModel common parent class, all of the methods are moved to the AbstractDataGridModel, DefaultDataGridModel and LargeDataGridModel are two specific implementation, there is no certain method.
  • Line wrap in cell, the cell supports wordwrapping.
  • Boolean cell with display text, cells of type Boolean text can be displayed by setting properties.

New in JComponentPack 3.5 (Oct 9, 2014)

  • New Features:
  • Adds new package com.zfqjava.swing.util with new helper classes, these helper classes could be used in JTree and JList:
  • UserObject.java - add icon to JList directly
  • TreeUserObject.java - add icon to JTree directly
  • WrapCellRenderer.java - a cell renderer support UserObject and TreeUserObject in JList and JTree component
  • DefaultDocumentFilter.java - a DocumentFilter to limit text length
  • Adds new components in package com.zfqjava.swing:
  • XTabbedPane - a JTabbedPane subclass support closed icon
  • XLinkList - a JList subclass support hyperlink
  • PrintFactory adds new methods to convert Printable to Pageable, connect multiple print job to one:
  • PrintFactory.createPageable(List, PageFormat); - convert a list of Printable to a Pageable
  • AbstractDataGridModel adds new method to define the default cell class:
  • AbstractDataGridModel.setDefaultClass(Class);
  • AbstractDataGridModel.getDefaultClass();
  • JBean adds new methods:
  • JBean.addToContentPane(Container); - Adds current component to content pane, subclass allow customize this behavior, wrap a component on current component, such as add a JLayer component on it.
  • JBean.invokeAction(String, Object); - Invoke the action by the specified name with an attach object.
  • JCommonPane adds new properties to define it's behavior:
  • JCommonPane.BANNER_ENABLED - Key for whether enable banner panel
  • CENTER_PANEL_BOUNDS - Key for center panel bounds, absolute position.
  • EXTRA_OPTIONS - Key for extra options
  • HANDLER - Key for dialog handler.
  • MESSAGE_STATUS - Key for status message.
  • REGISTER_URL - Key for the register url.
  • GET_PASSWORD_URL - Key for get back password url.
  • JDataForm adds new property to define the row height for form field:
  • JDataForm.getRowHeight();
  • JDataForm.setRowHeight(int);
  • JDataGridBean adds new methods:
  • JDataGridBean.doSave(Object); - Save current data to the specified file.
  • JDataGridBean.doSaveAs(File); - Save current data to the specified file.
  • JListView adds new method to get it's scroll pane:
  • JListView.getScrollPane();
  • JPrintPreview adds new method:
  • JPrintPreview.getDialog(); - Returns the opened dialog after invoke the methods showDialog(Component) or showDialog (Component, String).
  • UIFactory adds several new methods:
  • UIFactory.loadMenu(JMenu); - Load the menu forcibly, the menu is load lazily by default
  • UIFactory.createTree(String); - Create JTree from resource bundle, the factory will load the tree icon and node automatically.
  • UIFactory.createTray(String); - Create JTray from resource bundle, the factory will load the tray icon and menu automatically.

New in JComponentPack 3.4 (Feb 6, 2012)

  • JDataTable support insert multiple rows and then accept changes to databases.
  • New methods in JDataTable:
  • JDataTable.moveToInsertRow(boolean);
  • Sets the row attributes in JDataTable directly, add new methods:
  • JDataTable.setAttributesEnabled(boolean);
  • JDataTable.setDeleteRowAttributes(AttributeSet);
  • JDataTable.setInsertRowAttributes(AttributeSet);
  • JDataTable.setUpdateCellAttributes(AttributeSet);
  • New ColumnValue class in com.zfqjava.sql package to add values for specified SQL type,
  • the SyncRow.addColumn methods get updated to support the ColumnValue class.
  • JDataGrid allow reset row and column header:
  • New methods in JDataGrid:
  • JDataGrid.resetRowHeader();
  • JDataGrid.resetColumnHeader();
  • JDataForm add new method to fetch the control button, include ok and reset button:
  • New method in JDataForm:
  • JDataForm.getControlButton
  • JBean add new method to set the status bar directly:
  • JBean.setStatusBar
  • JLineBar support two different view component, list and tree, use getViewComponent() method to get the actual component: JList or JTree:
  • New methods in JLineBar:
  • JLineBar.setViewComponentType(int);
  • JLineBar.getViewComponentType();
  • JLIneBar.getViewComponent();
  • New constructors added in JStatusBar to add extra component:
  • JStatusBar(int, Component[]);
  • JLocationBar allow set the location text directly:
  • JLocationBar.setLocationText(String);
  • JLocationBar.getLocationText();
  • AComboBox component add new method to get the popup button:
  • AComboBox.getPopupButton();
  • DataGridModelAdapter add many methods to set the editable property for row, column and cell:
  • DataGridModelAdapter.getResolveCellEditable(int, int);
  • DataGridModelAdapter.clearCellEditable(int, int);
  • DataGridModelAdapter.setColumnEditable(boolean, int);
  • DataGridModelAdapter.isColumnEditable(int);
  • DataGridModelAdapter.getColumnEditable(int);
  • DataGridModelAdapter.clearColumnEditable(int);
  • DataGridModelAdapter.setRowEditable(boolean, int);
  • DataGridModelAdapter.isRowEditable(int);
  • DataGridModelAdapter.getRowEditable(int);
  • DataGridModelAdapter.clearRowEditable(int);
  • ResultSetTableModel add new methods to get connection, auto generated column names, etc.
  • ResultSetTableModel.getConnection();
  • ResultSetTableModel.setPageSize(int);
  • ResultSetTableModel.getAutoGeneratedColumnSet();
  • ResultSetTableModel.setAutoGeneratedColumnSet();
  • ResultSetTableModel.moveToInsertRow(boolean);
  • ResultSetTableModel.removeInsertRow();
  • Adds new PivotTableModel to support pivot table, the "PivotTableDemo" in run-demo.bat demonstrate this feature.
  • New SyncAction and new method "buildSql" in SyncHelper allow customizing the insert, update and delete sql statement.
  • New TreeHeaderTableModel and TreeHeaderTableModelHelper with the new tree view component type in JLineBar to support the tree header in JDataGrid, the "TreeHeaderGridDemo" in run-demo.bat demonstrate this feature.
  • New component XScrollBar to support tabbed component in scroll bar.
  • New component XViewport is a JViewport extension allow disable the JViewport paint rountine.
  • WorkBook add new method to get the WorkSheet by the specified name:
  • WorkBook.getSheet(String);
  • New ColorIcon added in com.zfqjava.swing package to paint the specified color.
  • CellManager add new method named "configurePreferredCellComponentType" to configure the preferred cell component type, the boolean value will use the check box, the date type will use the JCalendar.
  • Two new static factory method "valueOf" method added in Cell class:
  • Cell.valueOf(int, int);
  • Cell.valueOf(int, int, int, int);
  • New method added in AbstractCellEditor to customize the focus gained behavior:
  • AbstractCellEditor.getFocusGainedBehavior();
  • AbstractCellEditor.setFocusGainedBehavior(int);
  • Chart package: AbstractNode add new methods:
  • AbstractNode.isToggleOnSelect();
  • AbstractNode.setToggleOnSelect(boolean);
  • AbstractNode.isLabelRendererEnabled();
  • AbstractNode.setLabelRendererEnabled(boolean);
  • Chart package: ArcNode add new methods:
  • ArcNode.setAngle(double, double);
  • ArcNode.getAngleStart();
  • ArcNode.getAngleExtent();
  • Chart package: Chart class add new method to customize the layout behavior:
  • Chart.isLayoutOnSelectionChanged();
  • Chart.setLayoutOnSelectionChanged();
  • Chart package: Link add new methods to customize the segment label:
  • Link.setSegmentLabel(int, String);
  • Link.getSegmentLabel(int);
  • Link.setPointLabel(int, String);
  • Link.getPointLabel(int);
  • Chart package: PieChart add new methods to customize the series link and percent label:
  • PieChart.isSeriesLinkVisible();
  • PieChart.setSeriesLinkVisible(boolean);
  • PieChart.isPercentVisible();
  • PieChart.setPercentVisible(boolean);
  • AbstractDataGridModel add new methods to customize the editable property and other:
  • AbstractDataGridModel.clearRowEditable(int);
  • AbstractDataGridModel.clearColumnEditable(int);
  • AbstractDataGridModel.clearCellEditable(int, int);
  • AbstractDataGridModel.getResolveCellEditable(int, int);
  • AbstractDataGridModel.findColumn(String);
  • AbstractDataGridModel.isColumnNameSet(int);
  • AbstractDataGridModel.getFormulaContext();

New in JComponentPack 3.3 (Sep 1, 2011)

  • JDataTable can set color and other attributes for insert row, delete row, update cells, the "datatable.bat" or "datatable.sh" demonstrates this features:
  • ResultSetDataGridModelAdapter.setDeleteRowAttributes(AttributeSet);
  • ResultSetDataGridModelAdapter.setInsertRowAttributes(AttributeSet);
  • ResultSetDataGridModelAdapter.setUpdateCellAttributes(AttributeSet);
  • JDataTable can add or update the hidden column in databases:
  • ResultSetTableModel.setSyncHelper(SyncHelper);
  • JDataTable can map the column names in databases, support SQL as clause:
  • ResultSetTableModel.setColumnNameMap(Map);
  • JDataTable can log sql statement when accept changes:
  • ResultSetTableModel.setLogSql(boolean);
  • JDataTable can get notified by RowSetListener:
  • ResultSetTableModel.addRowSetListener(RowSetListener);
  • JDataTable add several new methods:
  • JDataTable.moveToInsertRow();
  • JDataTable.markAsDeletedRow(boolean);
  • JDataTable.nextPage();
  • JDataTable.previousPage();
  • JDataTable.hasPreviousPage();
  • JDataTable.isPreviousPageEnabled();
  • JDataTable.hasNextPage();
  • JDataTable.isNextPageEnabled();
  • JDataTable.isFirstPage();
  • JDataTable.isLastPage();
  • JDataTable.hasPreviousRow();
  • JDataTable.isPreviousRowEnabled();
  • JDataTable.hasNextRow();
  • JDataTable.isNextRowEnabled();
  • JDataTable can get notified when sync to database, the SyncListener is updated:
  • SyncListener.syncFailed(SyncEvent);
  • SyncListener.syncSucceeded(SyncEvent);
  • ResultSetTableModel.addSyncListener(SyncListener);
  • CellManager can change the editor or renderer component type directly:
  • CellManager.setCellEditorComponentTypeByClass(Class, CellEditorComponentType);
  • CellManager.setCellRendererComponentTypeByClass(Class, CellRendererComponentType);
  • ModelIO add new property named "CHARSET", you could set the charset when read or write TableModel for "txt, csv" and other formats.
  • JSyntaxEditor add several new formats for syntax highlighting.

New in JComponentPack 3.2 (Dec 2, 2010)

  • New Features:
  • Adds several new components: JFlowChart, JSlideShow, JTextEditor, JSyntaxEditor, JDataForm, JDesktop.
  • ResourceManager support single ResourceBundle since this version, adds two new API in ResourceManager:
  • ResourceManager.getBundle(String);
  • ResourceManager.getDefaultBundle();
  • AbstractDataGridModel and it's subclass DefaultDataGrid, LargeDataGridModel support the default attributes, adds new API in AbstractDataGridModel:
  • AbstractDataGridModel.getDefaultAttributes();
  • AbstractDataGridModel.setDefaultAttributes(AttributeSet);
  • Adds new DefaultStyleDemo to demonstrate the default attributes in the AbstractDataGridModel.
  • Adds new property named "domainName" in License class.
  • The JComponentPack JavaFX components support JavaFX1.2 Runtime.
  • Adds new API in JDataGrid, this will improve the render performance of JDataGrid with a lot of cell attributes:
  • JDataGrid.getCellAttributes(int row, int column, boolean readOnly);
  • AnchorLayout adds new Location: N, S, E, W, C, the LayoutDemo also demonstrate this new feature.
  • The Cell Editor and Renderer support button cell, the ButtonCellDemo2 demonstrate this new feature.
  • JCommonPane adds new method named "createVendorCopyrightPanel" to support creating the copyright panel.
  • JPrintPreview component generate the new preview image again when magnify, this feature will avoid preview the highly pixilated image when magnify.
  • JPrintPreview component adds new bound property named "pageableEnabled",this property enable the page feature on printing for all Printable object, this value is false by defalut to keep the backward compatibility, you can enable it by invoke "printPreview.setPageableEnabled(true);".
  • JPrintPreview adds new bound property named "attributesEnabled" to enable using the new cross-platform page setup dialog, print dialog, these new dialogs is provided by "javax.print" API, you can invoke the method "printPreview.setAttributesEnabled(true);" to enable this new feature, the PrintPreviewDemo demonstrate this new feature.
  • Adds several new API in JDataGrid:
  • JDataGrid.setCellManager(CellManager);
  • JDataGrid.stopEditing();
  • JDataGrid.cancelEditing();
  • JDataGrid.getFocusLostBehavior();
  • JDataGrid.setFocusLostBehavior(int);
  • JDataGrid.getLeadSelectionRow();
  • JDataGrid.getLeadSelectionColumn();
  • Bug Fixed:
  • Cell border stroke should be single selection in cell attributes dialog.
  • Show popup in JDataGridBean, the current cell editing should stop.
  • The WorkSheet should create a CellSelectionModel by default when load .xls files.
  • The method "JCommonPane.createVendorBannerPanel(Map)" layout the logo on the wrong location.

New in JComponentPack 3.1 (Sep 23, 2009)

  • New Features:
  • Adds font panel in cell attributes panel.
  • Adds new BooleanConverter, support the following values: string types: CHAR or VARCHAR true values: "TRUE", "YES", "T", "Y", "true", "yes", "t", "y", false values: "FALSE", "NO", "F", "N", "false", "no", "f", "n" number types, includes SQL types: BIT, TINYINT, SMALLINT, INTEGER or BIGINT
  • AbstractDataGridModel has been add the following methods: AbstractDataGridModel .isColumnClassSet(int); The DefaultDataGridModel and LargeDataGridModel has been implemented this methods.
  • DataGridModelAdapter and it's subclass ResultSetDataGridModelAdapter now supports set the column type to override the column type of the ResultSet, the following methods in these classes has been modified: DataGridModelAdapter.getColumnClass(int); DataGridModelAdapter.setColumnClass(Class, int)
  • The new listener SyncListener has been added into the com.zfqjava.sql package: com.zfqjava.sql.SyncListener com.zfqjava.sql.SyncEvent
  • ResultSetTableModel and RowSetTableModel adds the followings methods. ResultSetTableModel.addSyncListener(SyncListener); ResultSetTableModel.removeSyncListener(SyncListener); ResultSetTableModel.getSyncListeners(); RowSetTableModel.addSyncListener(SyncListener); RowSetTableModel.removeSyncListener(SyncListener); RowSetTableModel.getSyncListeners();
  • Hyperlink for cell
  • Text Rotate support
  • Disable the default browse button inside the hyper link popup dataGridBean.getAppMap().put(JCommonPane.LOCATION_BROWSE_BUTTON_HIDDEN, true)
  • New API in JDataGridBean to get the popup menu: JDataGridBean.getPopupMenu(String);
  • JDataGrid component support read and write new file format: Excel 2007 OOXML (.xlsx)