首页编程java编程java swing组件,JAVAswing

java swing组件,JAVAswing

编程之家2026-05-30608次浏览

其实java swing组件的问题并不复杂,但是又很多的朋友都不太了解JAVAswing,因此呢,今天小编就来为大家分享java swing组件的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

java swing组件,JAVAswing

java的swing组件的使用

Swing是用于图形用户界面开发的一个全面解决方案,包括250多个类,在这里不能一一列出。本书仅使用Swing用户界面。

1.标签 2.按钮 3.文本域 4.文本区 5.列表框 6.组合框

7.复选框 8.单选按钮 9.滚动条 10.选项卡 11.对话框 12.菜单

1.标签

标签类JLabel是用于显示文字或图标的简单组件。JLabel的构造方法包括:

public JLabel()

java swing组件,JAVAswing

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指定文本或图标的水平对齐方式。

java swing组件,JAVAswing

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 编写需要用的一些常用组件,求代码~~

这个看你设计成什么样子,都有不同的需求,代码只能参考一下。

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 produceNewModelData(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= produceNewModelData(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= produceNewModelData(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= produceNewModelData(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界面

swing做界面,一般需要一种基本知识:

一:关于布局的知识,常用的布局要熟悉,比如边界布局,流式布局,绝对布局,网格布局等.布局决定了组件(按钮,文本框,下拉框等)所在的位置

二:关于事件响应机制,比如点击按钮事件,如何响应.

三:一些常用的组件,按钮,文本框,下拉框,复选按钮,单选按钮,等

举例:简单的代码,实现给窗口随机更换背景色

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassDemoFrameextendsJFrameimplementsActionListener{

publicDemoFrame(){

JButtonjb1=newJButton("点击换背景色");//定义按钮组件

jb1.addActionListener(this);//给按钮添加事件响应机制,按钮点击时执行actionPerformed方法

add(jb1);//把组件添加到窗口

setLayout(newFlowLayout());//流式布局

setTitle("Color");//窗口标题

setSize(300,200);//大小

setLocationRelativeTo(null);//居中

setDefaultCloseOperation(EXIT_ON_CLOSE);//点击关闭时退出系统

setVisible(true);//窗口可见

}

publicstaticvoidmain(String[]args){//main方法,启动窗口

newDemoFrame();//创建窗口

}

publicvoidactionPerformed(ActionEvente){//当按钮被点击时,执行下面的代码

//随机颜色,并设置成为窗口的背景色

getContentPane().setBackground(newColor((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256)));

}

}

OK,关于java swing组件和JAVAswing的内容到此结束了,希望对大家有所帮助。

作文ai生成器在线 求解ai作文生成器有哪些作文ai生成器有哪些ai是什么意思梗,ai了什么意思ai是什么意思梗