java Swing 编写需要用的一些常用组件,求代码~~

作者&投稿:无菲 (若有异议请与网页底部的电邮联系)
Java语言,用Swing组件编写程序,要求输入圆的半径r,求圆的面积?~

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.text.DecimalFormat;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class Test {

JFrame frame = new JFrame("求圆的面积");
JLabel info = new JLabel("请输入圆的半径:");
JTextField rField = new JTextField();
JLabel result = new JLabel();

public void init() {
frame.setLayout(null);
frame.setSize(280, 100);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

info.setBounds(10, 10, 100, 30);
rField.setBounds(110, 15, 150, 20);
result.setBounds(30, 40, 220, 30);
frame.add(info);
frame.add(rField);
frame.add(result);
rField.addKeyListener(new KeyListener() {

public void keyPressed(KeyEvent e) {
}

public void keyReleased(KeyEvent e) {
double r = 0;
try {
r = Double.parseDouble(rField.getText());
} catch (NumberFormatException n) {
String txt = rField.getText();
if (!txt.equals("")) {
rField.setText(changeTxt(txt));
} else {
result.setText("");
}
return;
}
DecimalFormat format = new DecimalFormat("#0.00");
String area = format.format(Math.pow(Math.PI * r, 2));
result.setText("圆的面积: " + area);
}

public void keyTyped(KeyEvent e) {
}

});
}

public String changeTxt(String txt) {
StringBuffer s = new StringBuffer();
for (int i = 0; i < txt.length(); i++) {
int n = (int) txt.charAt(i);
if (n >= 48 && n <= 57 || n == 46) {
s.append(txt.charAt(i));
}
}
return s.toString();
}

public static void main(String[] args) {
new Test().init();
}
}

import javax.swing.*;

public class Swing {
JFrame frame;
JPanel panel;
JLabel jla1,jla2,jla3;
JButton jbu;
JTextField jtf1,jtf2;
JComboBox box;
static final String[] email={"263.net","163.com","qq.com"};

public Swing(){
frame=new JFrame();
frame.setSize(600,300);
frame.setLocation(200,100);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

jla1=new JLabel("邮箱");
jla2=new JLabel("@");
jla3=new JLabel("密码");

jtf1=new JTextField("用户名",10);
jtf2=new JTextField("密码",10);

box=new JComboBox(email);

jbu=new JButton("登陆");

panel=new JPanel();

panel.add(jla1);
panel.add(jtf1);
panel.add(jla2);
panel.add(box);
panel.add(jla3);
panel.add(jtf2);
panel.add(jbu);

frame.add(panel);

}

public static void main(String args[]){
new 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;
}

}

package zhidao;

import javax.accessibility.Accessible;
import javax.swing.Action;
import javax.swing.DefaultButtonModel;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JRootPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.plaf.ButtonUI;

public class MyButton extends JButton implements Accessible
{
private static final long serialVersionUID = 1L;
private static final String uiClassID = "MyButtonUI";

public MyButton ()
{
this (null, null);
}

public MyButton ( Icon icon )
{
this (null, icon);
}

public MyButton ( String text )
{
this (text, null);
}

/**
 * Creates a button where properties are taken from the <code>Action</code>
 * supplied.
 * 
 * @param a
 *            the <code>Action</code> used to specify the new button
 * @since 1.3
 */
public MyButton ( Action a )
{
this ();
setAction (a);
}

public MyButton ( String text, Icon icon )
{
setModel (new DefaultButtonModel ());
init (text, icon);
}

public void updateUI ()
{
setUI ((ButtonUI) UIManager.getUI (this));
}

public String getUIClassID ()
{
return uiClassID;
}

public boolean isDefaultButton ()
{
JRootPane root = SwingUtilities.getRootPane (this);
if (root != null)
{
return root.getDefaultButton () == this;
}
return false;
}

public void removeNotify ()
{
JRootPane root = SwingUtilities.getRootPane (this);
if (root != null && root.getDefaultButton () == this)
{
root.setDefaultButton (null);
}
super.removeNotify ();
}

}


Java GUI编程似乎不是重点

自定义组建?什么需要还要自定义?


莱州市15091397099: 用java的swing技术需要导入什么jar包吗 -
将阮金银: 不用,swing是java基础类的一部分,如果你用eclipse开发,你直接写代码,然后Ctrl+shift+O就自动补全基础类引用了.还有,用swing技术需要继承jframe.

莱州市15091397099: java程序要使用swing gui 组件,应该在程序的开始部分引入什么包 -
将阮金银: 一般Swing组件是在javax.swing.*包中,一般建议先不引包,先写组件;报错的时候用eclipse这类IDE的自动纠错功能来引入相应的包

莱州市15091397099: 我现在还没有接触过java,请问要掌握哪些知识才可用java swing尽快编写出一个计算器 -
将阮金银: 既然要用到Swing了,那就先学习Swing 的知识,要理解Java 2D绘制,加上Listenner监听器的使用. java swing写一个计算器比较麻烦,如果为了计算器而忙,那就用其他的开发语言写,例如C#、Delphi语言等,这些语言画窗体都很快 路过~

莱州市15091397099: java的swing组件的使用 -
将阮金银: Swing是用于图形用户界面开发的一个全面解决方案,包括250多个类,在这里不能一一列出.本书仅使用Swing用户界面. 1.标 签 2.按 钮 3.文本域 4.文本区 5.列表框 6.组合框 7.复选框 8.单选按钮 9.滚动条 10.选项卡 11.对话框 12.菜 单 1.标 签 ...

莱州市15091397099: java 开发erp 要用那些技术?
将阮金银: java swing是主要搞c/s模式的,目前erp的范畴也比较广,用java开发,主要是javaEE方面的技术,jsp,servlet,struts1.x或struts2,hibernate,spring,ejb等就够了,此外js,css,html这些必不可少.

莱州市15091397099: 我最近在自学java,用的是jdk和eclipse(没有安装插件)开发,请问我该怎样编写swing图形界面呢?还需要下... -
将阮金银: 直接写代码就行.运行就能看到效果.也可以用插件 windowsbuilder.可以实现可视化编辑界面.eclipse里可以直接查找到这个插件,自动安装的.

莱州市15091397099: 每个使用swing构件的程序必须有一个什么 -
将阮金银: 2、Applet显示相关的3个方法是:paint()方法、update()方法 和mouseClicked . 3、使用反射来动态的调用类的方法,需要使用的方法是 Java.lang.reflect.Method中的invoke 4...

莱州市15091397099: Java swing编程,用什么类实现导航栏? -
将阮金银: import java.awt.Button; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; public class Demo { public static void main(String[] args) { Demo demo = new Demo(); demo.run(); } public void run() { ...

莱州市15091397099: java中每个使用swing构件的程序必须有一个容器? -
将阮金银: 既然你用到了SWING,那应该就是要写一个界面了,最最起码,你要用JFrame吧,这就是一个最经常用到的的容器,至于在JFrame里面,你要不要用JPanel,或者想用布局管理的一些类,那要看你的需求了.用面向对象的方法来看,这就好比一张桌子,你在上面摆各种东西.你可以直接把控件放到JFrame里面,也可以把它放进别的容器,再把这个容器放进去.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网