『壹』 java里的swing是什么意思,为什么取名swing
软件包 javax.swing
提枣派嫌供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。
接口摘要
Action Action 接口提供 ActionListener 接口的一个有用扩展,以便若干控件访问相同的功能。
BoundedRangeModel 定义由 Slider 和 ProgressBar 这类组羡型件使用的数据模型。
ButtonModel 按钮的状态模型。
CellEditor 此接口定义任何通用编辑器应该能够实现的方法。
ComboBoxEditor 用于 JComboBox 组件的编辑器组件。
ComboBoxModel 用于组合框的数据模型。
DesktopManager DesktopManager 对象由 DesktopPane 对象所拥有。
Icon 一个小的固定大小图片,通常用于装饰组件。
JComboBox.KeySelectionManager 定义 KeySelectionManager 的接口。
ListCellRenderer 标识可用作“橡皮图章”以绘制 JList 中单元格的组件。
ListModel 此接口定义方法组件(如 JList),这些组件用于获取列表中每个单元格的值以及列表的长度。
ListSelectionModel 此接口表示任何组件的当前选择状态,该组件显示一个具有稳定索引的值列表。
MenuElement 可以放入菜单中的所有组件都应该实现此接口。
MutableComboBoxModel ComboBoxModel 的可变版本。
Renderer 为负责“呈现”(显示)值的对象定义需求。
RootPaneContainer 此接口由具有单个 JRootPane 子组件的组件来实现,这些子组件包括:JDialog、JFrame、JWindow、JApplet、JInternalFrame。
Scrollable 为类似 jscrollPane 的滚动容器提供信息的接口。
ScrollPaneConstants 与 JScrollPane 组件一起使用的常数。
SingleSelectionModel 最多支持一个索引选项的模型。
SpinnerModel 对象值的潜在无界序列的模型。
SwingConstants 通常用于在屏幕上定位或定向组件的常量的集合。
UIDefaults.ActiveValue 此类使用户能够在默认表中存储项,该默认表在每次使用某个 getXXX(key) 方法进行查找时创建。
UIDefaults.LazyValue 此类使用户能够在默认表中存储项,该默认表只有在第一次使用某个 getXXX(key) 方法进行查找时才创建。
WindowConstants 用于控制窗口关闭操作的常量。
类摘要
AbstractAction 此类提供 JFC Action 接口的默认实现。
AbstractButton 定义按钮和菜单项的一般行为。
AbstractCellEditor
AbstractListModel 该数据模型的抽象定义提供一个带内容的 List。
AbstractSpinnerModel 此类提供 SpinnerModel 接口的 ChangeListener 部分,该凳手接口应该适用于最具体的 SpinnerModel 实现。
ActionMap ActionMap 提供从 Object(称为键 或 Action 名)到 Action 的映射。
BorderFactory 提供标准 Border 对象的工厂类。
Box 使用 BoxLayout 对象作为其布局管理器的一个轻量级容器。
Box.Filler 参与布局但没有视图的轻量级组件的实现。
BoxLayout 允许纵向或横向布置多个组件的布局管理器。
ButtonGroup 此类用于为一组按钮创建一个多斥(multiple-exclusion)作用域。
CellRendererPane 此类被插入在单元格渲染器与使用它们的组件之间。
ComponentInputMap ComponentInputMap 是与特定 JComponent 相关联的 InputMap。
DebugGraphics 支持图形调试的图形子类。
DefaultBoundedRangeModel BoundedRangeModel 的一般实现。
DefaultButtonModel Button 组件的数据模型的默认实现。
DefaultCellEditor 表单元格和树单元格的默认编辑器。
DefaultComboBoxModel 组合框的默认模型。
DefaultDesktopManager 此类是 DesktopManager 的实现。
DefaultFocusManager 此类已被废弃,用 1.4 focus API 取代。
DefaultListCellRenderer 呈现列表中的一个项。
DefaultListCellRenderer.UIResource 实现 UIResource 的 DefaultListCellRenderer 的子类。
DefaultListModel 此类以松散方式实现 java.util.Vector API,它实现 1.1.x 版本的 java.util.Vector,没有 collection 类支持,并且在发生更改时通知 ListDataListener。
DefaultListSelectionModel 列表选择的默认数据模型。
DefaultSingleSelectionModel SingleSelectionModel 的一般实现。
FocusManager 从 1.4 focus API 开始,此类已被废弃。
GrayFilter 一个图像过滤器,它通过将图像转换成灰度级图像并增亮图像中的像素来“禁用”图像。
ImageIcon 一个 Icon 接口的实现,它根据 Image 绘制 Icon。
InputMap InputMap 提供输入事件(目前只使用 KeyStroke)和 Object 之间的绑定。
InputVerifier 此类的用途是通过带文本字段的 GUI 帮助客户端支持流畅的焦点导航。
该 FocusTraversalPolicy 可以有选择地提供确定 JInternalFrame 初始 Component 的算法。
JApplet java.applet.Applet 的扩展版,它添加了对 JFC/Swing 组件架构的支持。
JButton "push" 按钮的实现。
JCheckBox 复选框的实现,复选框是一个可以被选定和取消选定的项,它将其状态显示给用户。
JCheckBoxMenuItem 可以被选定或取消选定的菜单项。
JColorChooser JColorChooser 提供一个用于允许用户操作和选择颜色的控制器窗格。
JComboBox 将按钮或可编辑字段与下拉列表组合的组件。
JComponent 该类是除顶层容器外所有 Swing 组件的基类。
JDesktopPane 用于创建多文档界面或虚拟桌面的容器。
JDialog 创建对话框窗口的主要类。
JEditorPane 可编辑各种内容的文本组件。
JFileChooser JFileChooser 为用户选择文件提供了一种简单的机制。
JFormattedTextField JFormattedTextField 扩展了 JTextField,添加了对格式化任意值的支持,以及一旦用户编辑了文本就检索特定对象的支持。
JFormattedTextField.AbstractFormatter JFormattedTextField 所使用的 AbstractFormatter 实例,用于处理从 Object 到 String 和从 String 到 Object 的转换。
JFormattedTextField.AbstractFormatterFactory JFormattedTextField 使用的 AbstractFormatterFactory 实例,用来获得 AbstractFormatter 实例,依次使用该实例格式化各个值。
JFrame java.awt.Frame 的扩展版本,该版本添加了对 JFC/Swing 组件架构的支持。
JInternalFrame 提供很多本机窗体功能的轻量级对象,这些功能包括拖动、关闭、变成图标、调整大小、标题显示和支持菜单栏。
JInternalFrame.JDesktopIcon 此组件表示 JInternalFrame 的图标化版本。
JLabel 用于短文本字符串或图像或二者的显示区。
JLayeredPane JLayeredPane 为 JFC/Swing 容器添加了深度,允许组件在需要时互相重叠。
JList 该组件允许用户从列表中选择一个或多个对象。
JMenu 菜单的该实现是一个包含 JMenuItem 的弹出窗口,用户选择 JMenuBar 上的项时会显示该 JMenuItem。
JMenuBar 菜单栏的实现。
JMenuItem 菜单中的项的实现。
JOptionPane JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。
JPanel JPanel 是一般轻量级容器。
JPasswordField JPasswordField 是一个轻量级组件,允许编辑一个单行文本,其视图指示键入内容,但不显示原始字符。
JPopupMenu 弹出菜单的实现,弹出菜单是一个可弹出并显示一系列选项的小窗口。
JPopupMenu.Separator 弹出与菜单有关的分隔符。
JProgressBar 默认显示有界区间整数值的组件。
JRadioButton 实现一个单选按钮,此按钮项可被选择或取消选择,并可为用户显示其状态。
JRadioButtonMenuItem 一个单选按钮菜单项的实现。
JRootPane 该轻量级容器由 JFrame、JDialog、JWindow、JApplet 和 JInternalFrame 在后台使用。
JScrollBar 滚动条的实现。
JScrollPane 提供轻量级组件的 scrollable 视图。
JSeparator JSeparator 为实现分隔线提供了一个通用组件 - 通常用作菜单项之间的分隔符,以便将菜单项分成几个逻辑组。
JSlider 一个让用户以图形方式在有界区间内通过移动滑块来选择值的组件。
JSpinner 让用户从一个有序序列中选择一个数字或者一个对象值的单行输入字段。
JSpinner.DateEditor 其模型为 SpinnerDateModel 的 JSpinner 编辑器。
JSpinner.DefaultEditor 一个针对非常特殊编辑器的简单基类,该类在 JFormattedTextField 中显示模型的当前值的只读视图。
JSpinner.ListEditor 其模型为 SpinnerListModel 的 JSpinner 编辑器。
JSpinner.NumberEditor 其模型为 SpinnerNumberModel 的 JSpinner 编辑器。
JSplitPane JSplitPane 用于分隔两个(只能两个)Component。
JTabbedPane 一个组件,它允许用户通过单击具有给定标题和/或图标的选项卡,在一组组件之间进行切换。
JTable JTable 用来显示和编辑规则的二维单元表。
JTextArea JTextArea 是一个显示纯文本的多行区域。
JTextField JTextField 是一个轻量级组件,它允许编辑单行文本。
JTextPane 可以用以图形方式表示的属性来标记的文本组件。
JToggleButton 具有两个状态的(two-state)按钮的实现。
JToggleButton.ToggleButtonModel ToggleButton 模型 警告:此类的已序列化对象与以后的 Swing 版本不兼容。
JToolBar JToolBar 提供了一个用来显示常用的 Action 或控件的组件。
JToolBar.Separator 一个特定于工具栏的分隔符。
JToolTip 用来显示 Component 的“提示”。
JTree 将分层数据集显示为轮廓的控件。
JTree.DynamicUtilTreeNode DynamicUtilTreeNode 可以包装 vectors/hashtables/arrays/strings 并根据需要创建适当的子树节点。
JTree.EmptySelectionModel EmptySelectionModel 是一个不允许选择任何内容的 TreeSelectionModel。
JViewport 用于查看基础信息的“视口”或“观察孔”。
JWindow JWindow 是一个容器,可以显示在用户桌面上的任何位置。
KeyStroke 表示键盘或等效输入设置上的键操作的 KeyStroke。
LayoutFocusTraversalPolicy 根据 Component 的大小、位置和方向对其排序的 SortingFocusTraversalPolicy。
LookAndFeel 从可插入外观组件的角度全面展现外观的特性。
MenuSelectionManager MenuSelectionManager 拥有菜单层次结构中的选项。
OverlayLayout 要在彼此顶部安排组件的布局管理器。
Popup Popup 用于向用户显示 Component,它通常位于特定包含层次结构中所有其他 Component 的顶部。
PopupFactory 顾名思义,PopupFactory 用于获取 Popup 的实例。
ProgressMonitor 监视某个操作的进度的类。
ProgressMonitorInputStream 监视读取某些 InputStream 的进度。
RepaintManager 此类管理重绘请求,以最大限度地降低重绘次数。
ScrollPaneLayout JScrollPane 使用的布局管理器。
ScrollPaneLayout.UIResource ScrollPaneLayout 的 UI 资源版本。
SizeRequirements 为方便布局管理器,计算组件的有关大小和位置信息。
SizeSequence 一个 SizeSequence 对象,它有效地维护一个包含大小和相应位置的顺序列表。
SortingFocusTraversalPolicy 通过对焦点遍历循环的 Components 按给定 Comparator 排序确定遍历顺序的 FocusTraversalPolicy。
SpinnerDateModel Date 序列的一个 SpinnerModel。
SpinnerListModel 其值由数组或 List 定义的 SpinnerModel 的简单实现。
SpinnerNumberModel 用于数字序列的 SpinnerModel。
Spring 该 Spring 类的实例将存储以下三个表示其行为特征的属性:minimum、preferred 和 maximum 值。
SpringLayout SpringLayout 根据一组约束布置其相关容器的子组件。
SpringLayout.Constraints Constraints 对象将管理组件大小和位置更改方式的约束存储在 SpringLayout 控制的容器中。
SwingUtilities Swing 实用方法的集合。
Timer 在指定延迟之后激发一个或多个操作事件。
ToolTipManager 管理系统中的所有 ToolTips。
TransferHandler 此类用于处理往返于 Swing 组件的 Transferable 的传输。
UIDefaults Swing 组件的默认值表。
UIDefaults.LazyInputMap LazyInputMap 将在其 createValue 方法中创建一个 InputMap。
UIDefaults.ProxyLazyValue 此类提供一个可用于延迟加载要创建实例类的 LazyValue 的实现。
UIManager 此类跟踪当前的外观及其默认设置。
UIManager.LookAndFeelInfo 为了配置菜单或为了初始应用程序设置而提供关于已安装的 LookAndFeel 的少量信息。
ViewportLayout JViewport 的默认布局管理器。
枚举摘要
JTable.PrintMode 用于打印 JTable 的打印模式。
异常摘要
指示在用户系统上不存在请求的外观管理类的异常。
软件包 javax.swing 的描述
提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。有关使用这些组件的程序员指南,请参阅 Creating a GUI with JFC/Swing,该内容在《The Java Tutorial》的结尾处。有关其他参考资料,请参阅相关文档。
『贰』 java的swing组件的使用
Swing是用于图形用户界面开发的一个全面解决方案,包括250多个类,在这里不能一一列出。本书仅使用Swing用户界面。
1.标 签 2.按 钮 3.文本域 4.文本区 5.列表框 6.组合框
7.复选框 8.单选按钮 9.滚动条 10.选项卡 11.对话框 12.菜 单
1.标 签
标签类JLabel是用于显示文字或图标的简单组件。JLabel的构造方法包括:
public JLabel()
public JLabel(Icon icon)
public JLabel(Icon icon, int horizontalAlignment)
public JLabel(String text)
public JLabel(String text, Icon icon, int horizontalAlignment)
public JLabel(String text, int horizontalAlignment)
在构造方法中,text指定标签的文字,icon指定标签的图标,horizontalAlignment指定文本或图标的水平对齐方式。
JLabel实例维护的属性包括:
表8.3 JLabel的属性 属性名
数据类型
访问
缺省值
disabledIcon
Icon
SG
灰色过滤图标
displayedMnemonic
Int
SG
——
horizontalAlignment
Int
CSG
LEFT
horizontalTextPosition
Int
SG
RIGHT
Icon
Icon
CSG
null
iconTextGap
Int
SG
4个像素
labelFor
Component
SG
null
Text
String
CSG
“”
verticalAlignment
Int
SG
CENTER
verticalTextPosition
int
SG
CENTER
注:在访问中,C=可在构造时设置/G=获取方法/S=设置方法
disabledIcon:标签被禁用时显示的图标。
displayedMnemonic:设置LabelFor属性后显示的助记符。
horizontalAlignment:标签内容的水平对齐方式。取值包括:SwingConstants.LEFT、SwingConstants.RIGHT和SwingConstants.CENTER。
horizontalTextPosition:文本相对于图标的水平位置;与水平对齐方式的有效值相同。
icon:标签在启用时显示的图标。
iconTextGap:标签的文本与图标之间的间隙,以像素点为单位。
labelFor:一个组件,它在标签的助记符被键入时获得焦点。
Text:标签显示的文本。
verticalAlignment:标签内容的垂直对齐方式。取值包括:SwingConstants.TOP、SwingConstants.BOTTOM和SwingConstants.CENTER。
『叁』 java swing 组件的坐标问题
首先把面板的Layout设为null
例jPanel.setLayout(null);
然后对于单个组件的bounds设为你想要的坐标
例jLabel.setBounds(new Rectangle(100, 100, 100, 40));
其中4个参数分别为组件的左上角横坐标,纵坐标,横长和纵宽
jList.setSize(100,50)
『肆』 java的Swing是轻量级组件,轻量级组件是什么意思
一、轻量级组件是用java代码画出来的,这样具有平台移植性
重量级组件是调用系统的函数画出来的组件,比如主窗体
一般来说尽量用轻量级的组件,这样对程序的移植性很好。
一般java.swing包里的组件大部分是轻量级的,java.awt里面的是重量级的。
swing是由100%纯java实现的,swing组件是用java实现的轻量级组件,没有本地代码
不依赖操作系统的支持,这是与AWT组件的最大组别。由于AWT组件通过与具体平台的
对等类(peer)实现,因此Swing比AWT组件具有更强的实用性。Swing在不同的
平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。
二、总的来说就是
重量级组件:对应运行平台必须存在一个对应的组件.
轻量级组件:在一个虚拟的画布上画出来的组件(所以swing较慢),所有轻量级组件"最终"要放到重量级组件(jframe,jdialog)中.由于是画出来所以能做到各种平台上一致的表现.同样,如果混合重量级组件和轻量级组件容易引起重叠上的冲突.
『伍』 java Swing 编写需要用的一些常用组件,求代码~~
这个看你设计成什么样子,都有不同的需求,代码只能参考一下。
package com.hengjun.hjropcs.commons;
import java.awt.Dimension;
import java.awt.Font;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.swing.ComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.UIManager;
import com.hengjun.commons.lang.Func1;
import com.hengjun.commons.lang.HJCollectionUtils;
import com.hengjun.commons.swing.DimensionUtility;
import com.hengjun.commons.swing.HJComboBoxUtils;
import com.hengjun.commons.swing.combobox.decorators.SpellComboBoxDecorator;
import com.hengjun.commons.ui.DisplayData;
import com.hengjun.framework.enums.EDataStatus;
import com.hengjun.framework.framework_core.model.BaseModel;
import com.hengjun.framework.framework_core.support.constant.MessageConstants;
import com.hengjun.hjrop.model.dbmodel.RopRegion;
import com.hengjun.hjrop.model.dbmodel.RopStation;
import com.hengjun.hjropcs.cache.CacheRegion;
import com.hengjun.hjropcs.commons.hjcombobox.Builder;
import com.hengjun.hjropcs.commons.hjcombobox.RegionComboBox.CBuilder;
import com.hengjun.hjropcs.core.ui.FullSizeComboBoxUI;
public class HJCommonCombox extends JComboBox{
//批量修改用,=1 带拼音搜索,批量修改时第一项插入一个new 对象,而不是CommonObject中的对象;
//因为点击+-号时可以直接更改index=0项的text即可,效率高
public final static int MULTI_MODIFY_WITH_SPELL=1;
//批量修改用,=2 不带拼音搜索
public final static int MULTI_MODIFY_WITHOUT_SPELL=2;
//active数据,不带有第一行的empty
public final static int ACTIVE_RECORDS_WITH_SPELL_WITHOUT_EMPTY=3;
//默认的下拉框长度
// public static final int COMBOBOX_MAX_WIDTH = 170;
private boolean isSupportSpell=false;
//产生一个新的数据model,第一条数据为new DisplayData(null,"","")
protected List proceNewModelData(List activeViewForMulti){
if(activeViewForMulti==null || activeViewForMulti.size()==0){
return activeViewForMulti;
}
List ret=new ArrayList(activeViewForMulti);
ret.set(0, new DisplayData(null,"",""));
return ret;
}
public boolean isSupportSpell() {
return isSupportSpell;
}
public void setSRTDimension(){
this.setMaximumSize(DimensionUtility.SRTDimension);
this.setMinimumSize(DimensionUtility.SRTDimension);
}
public void setSRTDimension(Dimension dimension){
this.setMaximumSize(dimension);
this.setMinimumSize(dimension);
}
public void setSupportSpell(boolean isSupportSpell) {
this.isSupportSpell = isSupportSpell;
}
/**
* 默认创建的是含有所有active数据的下拉框
*/
public HJCommonCombox(){
this.setMaximumSize(DimensionUtility.componentDimension);
this.setMinimumSize(DimensionUtility.componentDimension);
}
public HJCommonCombox(Builder builder){
//默认是allActive数据
List model=getActiveModelData();
//如果是批量修改用,基于active数据
if(builder.isMultiModify()){
model=getActiveMultiModelData();
model= proceNewModelData(model);
}
//如果需要所有数据
if(builder.isAll()){
model=getAllModelData();//getActiveModelData;
}
//如果不需要第一项empty值
if(!builder.isWithEmpty()){
HJComboBoxUtils.showList(this, model,1);
}
if(builder.isWithEmpty()){
HJComboBoxUtils.showList(this, model);
}
//如果需要拼音搜索
if(builder.isSupportSpell()){
SpellComboBoxDecorator scb = new SpellComboBoxDecorator(this);
scb.initialize();
}
this.setMaximumSize(DimensionUtility.componentDimension);
this.setMinimumSize(DimensionUtility.componentDimension);
}
//根据filter名称和builder,返回List
public List<DisplayData> getListData(String filter,Builder builder){
List model=getFilterActiveModelData(filter);
//如果是批量修改用,基于active数据
if(builder.isMultiModify()){
model=getFilterActiveMultiModelData(filter);
model= proceNewModelData(model);
}
//如果需要所有数据
if(builder.isAll()){
model=getFilterAllModelData(filter);//getActiveModelData;
}
//如果不需要第一项empty值
if(!builder.isWithEmpty()){
if (!HJCollectionUtils.isEmpty(model)){
model=model.subList(1,model.size());
}
}else{//需要则直接返回
// HJComboBoxUtils.showList(this, model);
}
return model;
}
public HJCommonCombox(String filter,Builder builder){
//默认是allActive数据
List model=getFilterActiveModelData(filter);
//如果是批量修改用,基于active数据
if(builder.isMultiModify()){
model=getFilterActiveMultiModelData(filter);
model= proceNewModelData(model);
}
//如果需要所有数据
if(builder.isAll()){
model=getFilterAllModelData(filter);//getActiveModelData;
}
//如果不需要第一项empty值
if(!builder.isWithEmpty()){
HJComboBoxUtils.showList(this, model,1);
}else{
HJComboBoxUtils.showList(this, model);
}
//如果需要拼音搜索
if(builder.isSupportSpell()){
SpellComboBoxDecorator scb = new SpellComboBoxDecorator(this);
scb.initialize();
}
this.setMaximumSize(DimensionUtility.componentDimension);
this.setMinimumSize(DimensionUtility.componentDimension);
}
/**
* 当内容比较长的时候,做得处理
*/
public void updateUI() {
setUI(new FullSizeComboBoxUI());
}
/**
* @param isSupportSpell is true;表示支持拼音搜索
*/
public HJCommonCombox(boolean isSupportSpell){
this();
if(isSupportSpell){
this.isSupportSpell=isSupportSpell;
SpellComboBoxDecorator scb = new SpellComboBoxDecorator(this);
scb.initialize();
}
}
/**@deprecated 请使用 HJCommonCombox(Builder builder)模式
* @param isSupportSpell is true;表示支持拼音搜索
*/
public HJCommonCombox(boolean isSupportSpell,boolean isAll){
this(isSupportSpell);
}
public void setSelectedItem(Object o){
ComboBoxModel cm=getModel();
HJComboBoxUtils.setSelectedItem(o, cm);
}
/**
* 全部置空,在批量修改中使用
*/
public static void allSetEmpty(HJCommonCombox cmbBox){
if(cmbBox.getModel().getSize()>0){
cmbBox.setSelectedIndex(0);
cmbBox.setEnabled(false);
DisplayData dd=(DisplayData) cmbBox.getItemAt(0);
dd.setText(MessageConstants.ALL_SET_EMPTY);
JTextField editor = (JTextField)cmbBox.getEditor().getEditorComponent();
editor.setText(MessageConstants.ALL_SET_EMPTY);
}
}
public void setSelectedIndex(int anIndex) {
if(getModel().getSize()>0){
super.setSelectedIndex(anIndex);
}
}
/**
* 全部置空复位
* @param cmbBox
*/
public static void allSetEmptyReset(HJCommonCombox cmbBox){
if(cmbBox.getModel().getSize()>0){
cmbBox.setSelectedIndex(0);
cmbBox.setEnabled(true);
DisplayData dd=(DisplayData) cmbBox.getItemAt(0);
dd.setText("");
// cmbBox.rep
JTextField editor = (JTextField)cmbBox.getEditor().getEditorComponent();
editor.setText("");
}
}
/**
*
* @param collection
* @param converter
* @param allRecods 返回所有的对象
* @param allActiveRecords 返回所有状态为active的对象
* @return 不需要返回值,修改传入的2个list即可
*/
public static <T, TResult> void select(Collection<T> collection, Func1<T, TResult> converter,List allRecods,List allActiveRecords) {
BaseModel temp=null;
for (T t : collection) {
temp=(BaseModel)t;
if(temp!=null){
if(EDataStatus.VALID.getKey()==temp.getDataStatus()){
allActiveRecords.add(converter.func(t));
}
allRecods.add(converter.func(t));
}
}
}
public static <T, TResult> void select(Collection<T> collection, Func1<T, TResult> converter,List inputRecods) {
BaseModel temp=null;
for (T t : collection) {
temp=(BaseModel)t;
if(temp!=null){
inputRecods.add(converter.func(t));
}
}
}
public static <T, TResult> void select(Collection<T> collection, Func1<T, TResult> converter,List allRecods,List allActiveRecords,List allActiveRecordsWithMulti) {
BaseModel temp=null;
Object a=null;
for (T t : collection) {
temp=(BaseModel)t;
if(temp!=null){
a=converter.func(t);
if(EDataStatus.VALID.getKey()==temp.getDataStatus()){
allActiveRecords.add(a);
allActiveRecordsWithMulti.add(a);
}
allRecods.add(a);
}
}
}
protected List<DisplayData> getActiveModelData(){
return null;
}
protected List<DisplayData> getAllModelData(){
return null;
}
protected List<DisplayData> getActiveMultiModelData(){
return null;
}
protected List<DisplayData> getFilterActiveModelData(String filter){
return null;
}
protected List<DisplayData> getFilterAllModelData(String filter){
return null;
}
protected List<DisplayData> getFilterActiveMultiModelData(String filter){
return null;
}
}
『陆』 谁能详细介绍一下java swing里的JTable JTree是怎样用的以及他们的方法!
Swing是由100%纯Java实现的,Swing组件是用Java实现的轻量级( light-weight)组件,没有本地代码,不依赖操作系统的支持,这是它与AWT组件的最大区别。由于AWT组件通过与具体平台相关的对等类(Peer)实现,因此Swing比AWT组件具有更强的实用性。Swing在不同的平台上表现一致,并且有能力提供本地窗口系统不支持的其它特性。
Swing采用了一种MVC的设计范式,即"模型-视图-控制"(Model-View-Controller),其中模型用来保存内容,视图用来显示内容,控制器用来控制用户输入。
在AWT组件中,由于控制组件外观的对等类与具体平台相关,使得AWT组件总是只有与本机相关的外观。Swing使得程序在一个平台上运行时能够有不同的外观。用户可以选择自己习惯的外观。
7.1.2 Swing的类层次结构
在javax.swing包中,定义了两种类型的组件:顶层容器(JFrame,JApplet,JDialog和JWindow)和轻量级组件。Swing组件都是AWT的Container类的直接子类和间接子类。
java.awt.Component
-java.awt.Container
-java.awt.Window
-java.awt.Frame-javax.swing.JFrame
-javax.Dialog-javax.swing.JDialog
-javax.swing.JWindow
-java.awt.Applet-javax.swing.JApplet
-javax.swing.Box
-javax.swing.Jcomponet
swing包是Swing提供的最大包,它包含将近100个类和25个接口,几乎所有的Swing组件都在swing包中,只有JtableHeader和 JtextComponent是例外,它们分别在swing.table和swing.text中。
swing.border包中定义了事件和事件监听器类,与AWT的event包类似。它们都包括事件类和监听器接口。
swing.pending包包含了没有完全实现的Swing组件。
swing.table包中主要包括了表格组建(JTable)的支持类。
swing.tree同样是JTree的支持类。
swing.text、swing.text.html、swing.text.html.parser和swing.text.rtf都是用于显示和编辑文档的包。
『柒』 java swing组件的优点有哪些
Java Swing组件的复特点:
1、Swing的实现是一个小型制GUI框架,该框架无基本平台依赖性,而在AWT实现中却有依赖性。
2、javax.swing.JComponent类是所有Swing组件的基类。
3、Swing模型的目标是要遵循模型-视图-控制器体系结构。模型封装了数据和状态的底层表示。
4、javax.swing.plaf包提供了一个接口和许多抽象类用于定义可插入的外观框架。缺省的外观由javax.swing.plaf.basic包中的类实现。
『捌』 JAVA SWING中如何清除JPanel中的组件 然后添加另外的组件
你可以调用JPanel的remove方法,然后用add添加组件,最后更新重画就可以了。
一般想要移除和添加一个组件,可能是希望程序在运行时动态的移除和添加,所以你可以为要移除的组件设置一个监听器。
例如单击某一个组件就移除这个组件,并且添加另外的组件。例如,当单击按钮时,把按钮移除,添加一个文本框。下面是一个具体的例子:
package konw.win;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class WinTest3
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setLayout(new FlowLayout());
JPanel panel = new JPanel();
JButton button = new JButton("change");
panel.add(button);
JTextField f = new JTextField(20);
ActionListener listener = new ChangeListener(button,panel,f);
button.addActionListener(listener);//注册监听器
frame.add(panel);
frame.setVisible(true);
}
}
/*监听器,当单击按钮时,移除button按钮,加入text文本框*/
class ChangeListener implements ActionListener
{
JButton button;
JPanel panel;
JTextField text;
public ChangeListener(JButton button, JPanel panel, JTextField text)
{
super();
this.button = button;
this.panel = panel;
this.text = text;
}
@Override
public void actionPerformed(ActionEvent e)
{
if("change".equals(e.getActionCommand()))
{
panel.remove(button);
panel.add(text);
panel.updateUI();
panel.repaint();
}
}
}
需要特别注意的是移除和添加组件之后,记得重画组件。
『玖』 有关Java Swing动态增加组件
效果图
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//本类继承自JFrame实现了ActionListener接口
{
JPaneljpc;//存放组件的面板
JScrollPanejsp;//滚动面板
JButtonjbAdd,jbRemove,jbReset;//增加,删除按钮
intindex=1;//开始的字符
//构造函数
publicDemoFrame1(){
jpc=newJPanel();
jpc.setLayout(newBoxLayout(jpc,BoxLayout.Y_AXIS));//盒子布局.从上到下
jsp=newJScrollPane(jpc,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
add(jsp);
jbAdd=newJButton("增加");
jbAdd.addActionListener(this);
jbRemove=newJButton("删除");
jbRemove.addActionListener(this);
jbReset=newJButton("重置");
jbReset.addActionListener(this);
JPaneljps=newJPanel();
jps.add(jbAdd);
jps.add(jbRemove);
jps.add(jbReset);
add(jps,BorderLayout.SOUTH);
setTitle("增删组件");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300,220);//大小
setLocationRelativeTo(null);//居中
}
//main函数
publicstaticvoidmain(String[]args){
newDemoFrame1().setVisible(true);//初始化并可见
}
@Override
publicvoidactionPerformed(ActionEvente){
JButtonjb=(JButton)e.getSource();
if(jb==jbAdd){//当点击添加按钮时
jpc.add(newMyJPanel(index));//添加1个自己定义的面板组件
index++;//自加1
myUpdateUI();//刷新界面
}elseif(jb==jbRemove){//当点击删除按钮时
if(jpc.getComponentCount()>0){//得到jpc里的MyJPanel的组件数量
jpc.remove(jpc.getComponentCount()-1);//删除末尾的一个组件,
index-=1;
myUpdateUI();
}
}elseif(jb==jbReset){
for(inti=0;i<jpc.getComponentCount();i++){
MyJPanelmjp=(MyJPanel)jpc.getComponent(i);
//也就是说取值,可以根据文本框所在的位置来取
System.out.println("第"+(i+1)+"个文本框的值是"+mjp.getJTFValue());
mjp.setJTFValue("");//清空,重置
System.out.println("第"+(i+1)+"个文本框的值已清空重置");
}
}
}
//刷新界面函数
privatevoidmyUpdateUI(){
SwingUtilities.updateComponentTreeUI(this);//添加或删除组件后,更新窗口
JScrollBarjsb=jsp.getVerticalScrollBar();//得到垂直滚动条
jsb.setValue(jsb.getMaximum());//把滚动条位置设置到最下面
}
}
//自定义一个JPanle类
classMyJPanelextendsJPanel{
publicJTextFieldjtf;
publicMyJPanel(intindex){
JLabeljl=newJLabel("字符"+index);
jtf=newJTextField(15);
add(jl);
add(jtf);
}
//获取文本框的值
publicStringgetJTFValue(){
returnjtf.getText();
}
//设置文本框的值
publicvoidsetJTFValue(Stringvalue){
jtf.setText(value);
}
}