import java.awt.FlowLayoutimport javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JList
import javax.swing.JPanel
import javax.swing.SwingUtilities
import javax.swing.WindowConstants
public class download extends JFrame { /**
* @param args
*/
JFrame j
public download(){
j = new JFrame("java tcp/ip 下载")
j.setBounds(100, 100, 800, 600) // 实例 一 窗体
j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE)//JJFrame.EXIT_ON_CLOSE
j.getContentPane().setLayout(new FlowLayout(ABORT)) //布局设置
JPanel p = new JPanel()
p.setBounds(100, 100, 100, 100)
p.setLayout(new FlowLayout())
JButton jbtn = new JButton()
jbtn.setText("下载")
p.setSize(100, 100)
String[] data = {"one", "two", "three", "four"}
JList myList = new JList(data)
add(myList)
p.add(jbtn)p.add(myList) // 将 button list 控件 添加 panel 中
j.getContentPane().add(p) // 将 panel 添加 进窗体
j.pack() //自动适应窗体大小
j.setVisible(true)}
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable(){
public void run() {
// TODO Auto-generated method stub
new download()
}
})
}}
import java.applet.*import java.awt.*
import java.awt.event.*
import java.util.*
import javax.swing.*
import java.awt.geom.*
import java.io.*
import java.sql.Connection
class Point implements Serializable
{
int x,y
Color col
int tool
int boarder
Point(int x, int y, Color col, int tool, int boarder)
{
this.x = x
this.y = y
this.col = col
this.tool = tool
this.boarder = boarder
}
}
class paintboard extends Frame implements ActionListener,MouseMotionListener,MouseListener,ItemListener
{
int x = -1, y = -1
int con = 1//画笔大小
int Econ = 5//橡皮大小
int toolFlag = 0//toolFlag:工具标记
//toolFlag工具对应表:
//(0--画笔);(1--橡皮);(2--清除);
//(3--直线);(4--圆);(5--矩形);
Color c = new Color(0,0,0) //画笔颜色
BasicStroke size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)//画笔粗细
Point cutflag = new Point(-1, -1, c, 6, con)//截断标志
Vector paintInfo = null//点信息向量组
int n = 1
FileInputStream picIn = null
FileOutputStream picOut = null
ObjectInputStream VIn = null
ObjectOutputStream VOut = null
// *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/
Panel toolPanel
Button eraser, drLine,drCircle,drRect
Button clear ,pen
Choice ColChoice,SizeChoice,EraserChoice
Button colchooser
Label 颜色,大小B,大小E
//保存功能
Button openPic,savePic
FileDialog openPicture,savePicture
paintboard(String s)
{
super(s)
addMouseMotionListener(this)
addMouseListener(this)
paintInfo = new Vector()
/*各工具按钮及选择项*/
//颜色选择
ColChoice = new Choice()
ColChoice.add("black")
ColChoice.add("red")
ColChoice.add("blue")
ColChoice.add("green")
ColChoice.addItemListener(this)
//画笔大小选择
SizeChoice = new Choice()
SizeChoice.add("1")
SizeChoice.add("3")
SizeChoice.add("5")
SizeChoice.add("7")
SizeChoice.add("9")
SizeChoice.addItemListener(this)
//橡皮大小选择
EraserChoice = new Choice()
EraserChoice.add("5")
EraserChoice.add("9")
EraserChoice.add("13")
EraserChoice.add("17")
EraserChoice.addItemListener(this)
////////////////////////////////////////////////////
toolPanel = new Panel()
clear = new Button("清除")
eraser = new Button("橡皮")
pen = new Button("画笔")
drLine = new Button("画直线")
drCircle = new Button("画圆形")
drRect = new Button("画矩形")
openPic = new Button("打开图画")
savePic = new Button("保存图画")
colchooser = new Button("显示调色板")
//各组件事件监听
clear.addActionListener(this)
eraser.addActionListener(this)
pen.addActionListener(this)
drLine.addActionListener(this)
drCircle.addActionListener(this)
drRect.addActionListener(this)
openPic.addActionListener(this)
savePic.addActionListener(this)
colchooser.addActionListener(this)
颜色 = new Label("画笔颜色",Label.CENTER)
大小B = new Label("画笔大小",Label.CENTER)
大小E = new Label("橡皮大小",Label.CENTER)
//面板添加组件
toolPanel.add(openPic)
toolPanel.add(savePic)
toolPanel.add(pen)
toolPanel.add(drLine)
toolPanel.add(drCircle)
toolPanel.add(drRect)
toolPanel.add(颜色) toolPanel.add(ColChoice)
toolPanel.add(大小B) toolPanel.add(SizeChoice)
toolPanel.add(colchooser)
toolPanel.add(eraser)
toolPanel.add(大小E) toolPanel.add(EraserChoice)
toolPanel.add(clear)
//工具面板到APPLET面板
add(toolPanel,BorderLayout.NORTH)
setBounds(60,60,900,600) setVisible(true)
validate()
//dialog for save and load
openPicture = new FileDialog(this,"打开图画",FileDialog.LOAD)
openPicture.setVisible(false)
savePicture = new FileDialog(this,"保存图画",FileDialog.SAVE)
savePicture.setVisible(false)
openPicture.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{ openPicture.setVisible(false) }
})
savePicture.addWindowListener(new WindowAdapter()
{
@Override
public void windowClosing(WindowEvent e)
{ savePicture.setVisible(false) }
})
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{ System.exit(0)}
})
}
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D)g
Point p1,p2
n = paintInfo.size()
if(toolFlag==2)
g.clearRect(0,0,getSize().width,getSize().height)//清除
for(int i=0 i<n i++){
p1 = (Point)paintInfo.elementAt(i)
p2 = (Point)paintInfo.elementAt(i+1)
size = new BasicStroke(p1.boarder,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
g2d.setColor(p1.col)
g2d.setStroke(size)
if(p1.tool==p2.tool)
{
switch(p1.tool)
{
case 0://画笔
Line2D line1 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y)
g2d.draw(line1)
break
case 1://橡皮
g.clearRect(p1.x, p1.y, p1.boarder, p1.boarder)
break
case 3://画直线
Line2D line2 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y)
g2d.draw(line2)
break
case 4://画圆
Ellipse2D ellipse = new Ellipse2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y))
g2d.draw(ellipse)
break
case 5://画矩形
Rectangle2D rect = new Rectangle2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y))
g2d.draw(rect)
break
case 6://截断,跳过
i=i+1
break
default :
}//end switch
}//end if
}//end for
}
public void itemStateChanged(ItemEvent e)
{
if(e.getSource()==ColChoice)//预选颜色
{
String name = ColChoice.getSelectedItem()
switch (name) {
case "black":
c = new Color(0,0,0)
break
case "red":
c = new Color(255,0,0)
break
case "green":
c = new Color(0,255,0)
break
case "blue":
c = new Color(0,0,255)
break
}
}
else if(e.getSource()==SizeChoice)//画笔大小
{
String selected = SizeChoice.getSelectedItem()
switch (selected) {
case "1":
con = 1
size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
break
case "3":
con = 3
size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
break
case "5":
con = 5
size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
break
case "7":
con = 7
size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
break
case "9":
con = 9
size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL)
break
}
}
else if(e.getSource()==EraserChoice)//橡皮大小
{
String Esize = EraserChoice.getSelectedItem()
if(Esize=="5")
{ Econ = 5*2 }
else if(Esize=="9")
{ Econ = 9*2 }
else if(Esize=="13")
{ Econ = 13*2 }
else if(Esize=="17")
{ Econ = 17*3 }
}
}
public void mouseDragged(MouseEvent e)
{
Point p1
switch(toolFlag){
case 0://画笔
x = (int)e.getX()
y = (int)e.getY()
p1 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p1)
repaint()
break
case 1://橡皮
x = (int)e.getX()
y = (int)e.getY()
p1 = new Point(x, y, null, toolFlag, Econ)
paintInfo.addElement(p1)
repaint()
break
default :
}
}
public void mouseMoved(MouseEvent e) {}
public void update(Graphics g)
{
paint(g)
}
public void mousePressed(MouseEvent e)
{
Point p2
switch(toolFlag){
case 3://直线
x = (int)e.getX()
y = (int)e.getY()
p2 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p2)
break
case 4: //圆
x = (int)e.getX()
y = (int)e.getY()
p2 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p2)
break
case 5: //矩形
x = (int)e.getX()
y = (int)e.getY()
p2 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p2)
break
default :
}
}
public void mouseReleased(MouseEvent e)
{
Point p3
switch(toolFlag){
case 0://画笔
paintInfo.addElement(cutflag)
break
case 1: //eraser
paintInfo.addElement(cutflag)
break
case 3://直线
x = (int)e.getX()
y = (int)e.getY()
p3 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p3)
paintInfo.addElement(cutflag)
repaint()
break
case 4: //圆
x = (int)e.getX()
y = (int)e.getY()
p3 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p3)
paintInfo.addElement(cutflag)
repaint()
break
case 5: //矩形
x = (int)e.getX()
y = (int)e.getY()
p3 = new Point(x, y, c, toolFlag, con)
paintInfo.addElement(p3)
paintInfo.addElement(cutflag)
repaint()
break
default:
}
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==pen)//画笔
{toolFlag = 0}
if(e.getSource()==eraser)//橡皮
{toolFlag = 1}
if(e.getSource()==clear)//清除
{
toolFlag = 2
paintInfo.removeAllElements()
repaint()
}
if(e.getSource()==drLine)//画线
{toolFlag = 3}
if(e.getSource()==drCircle)//画圆
{toolFlag = 4}
if(e.getSource()==drRect)//画矩形
{toolFlag = 5}
if(e.getSource()==colchooser)//调色板
{
Color newColor = JColorChooser.showDialog(this,"调色板",c)
c = newColor
}
if(e.getSource()==openPic)//打开图画
{
openPicture.setVisible(true)
if(openPicture.getFile()!=null)
{
int tempflag
tempflag = toolFlag
toolFlag = 2
repaint()
try{
paintInfo.removeAllElements()
File filein = new File(openPicture.getDirectory(),openPicture.getFile())
picIn = new FileInputStream(filein)
VIn = new ObjectInputStream(picIn)
paintInfo = (Vector)VIn.readObject()
VIn.close()
repaint()
toolFlag = tempflag
}
catch(ClassNotFoundException IOe2)
{
repaint()
toolFlag = tempflag
System.out.println("can not read object")
}
catch(IOException IOe)
{
repaint()
toolFlag = tempflag
System.out.println("can not read file")
}
}
}
if(e.getSource()==savePic)//保存图画
{
savePicture.setVisible(true)
try{
File fileout = new File(savePicture.getDirectory(),savePicture.getFile())
picOut = new FileOutputStream(fileout)
VOut = new ObjectOutputStream(picOut)
VOut.writeObject(paintInfo)
VOut.close()
}
catch(IOException IOe)
{
System.out.println("can not write object")
}
}
}
}//end paintboard
public class Pb
{
public static void main(String args[])
{ new paintboard("画图程序") }
}
用else if不行啊,数据库里如果“系部”有30几个,难道你一个个写过去吗?可以用for循环,把系部加入第一个列表然后 对该列表添加监听器 addActionListener 通过该列表.getSelectedItem得到选中的项 然后专业可以写一个类。里面有一个属性是“系部” 当那些个专业的系部属性为 第一个列表中的值的时候把那些专业的“专业名”属性加入第二个列表中 依次类推我给你一个关于省份,城市,和营业网点的3级下拉列表的例子,你稍微修改就可以了import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.util.ArrayList
import java.util.Listimport javax.swing.JComboBox
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JPanel@SuppressWarnings("serial")
public class Test extends JFrame{
private List<String>provinces=new ArrayList<String>()
private List<City>citys=new ArrayList<City>()
private List<Branch>branchs=new ArrayList<Branch>()
private JComboBox provinceBox=new JComboBox()
private JComboBox cityBox=new JComboBox()
private JComboBox branchBox=new JComboBox()
public Test() {
init()
initData()
setBox()
addHandler()
}
public void init(){//初始化GUI界面
JPanel panel=new JPanel()
this.add(panel)
//panel.setLayout(new GridLayout(3,2))
panel.add(new JLabel("省份:"))
panel.add(provinceBox)
panel.add(new JLabel("城市:"))
panel.add(cityBox)
panel.add(new JLabel("营业网点"))
panel.add(branchBox)
}
private void initData(){//初始化省份 城市和营业网点 这些数据实际上应该从数据库里查询
provinces.add("浙江")
provinces.add("广西")
citys.add(new City("浙江","宁波"))
citys.add(new City("浙江","金华"))
citys.add(new City("广西","桂林"))
citys.add(new City("广西","南宁"))
branchs.add(new Branch("浙江","宁波", "宁波镇海网点"))
branchs.add(new Branch("浙江","宁波", "宁波北仑网点"))
branchs.add(new Branch("浙江","金华", "金华网点1"))
branchs.add(new Branch("浙江","金华", "金华网点2"))
branchs.add(new Branch("广西","桂林", "桂林网点1"))
branchs.add(new Branch("广西","桂林", "桂林网点2"))
branchs.add(new Branch("广西","南宁", "南宁网点1"))
branchs.add(new Branch("广西","南宁", "南宁网点2"))
}
private void setBox(){//设置下拉列表里的值
//设置先在各项列表里加入的值
provinceBox.removeAllItems()
cityBox.removeAllItems()
branchBox.removeAllItems()
provinceBox.addItem("所有")
cityBox.addItem("所有")
branchBox.addItem("所有")
for (int i = 0i <provinces.size()i++) {
provinceBox.addItem(provinces.get(i))
}
for (int i = 0i <citys.size()i++) {
cityBox.addItem(citys.get(i).getCity())
}
for (int i = 0i <branchs.size()i++) {
branchBox.addItem(branchs.get(i).getBranch())
}
}
private void addHandler(){//设置3个下拉列表的级联关系
provinceBox.addActionListener(new ActionListener() {
//监听province下拉列表
@Override
public void actionPerformed(ActionEvent e) {
cityBox.removeAllItems()
cityBox.addItem("所有")
branchBox.removeAllItems()
branchBox.addItem("所有")
String province=provinceBox.getSelectedItem().toString()//得到当前点中的值
//在city下拉列表中 遍历citys,如果citys[i]的省份属性和它相同则添加进去,其中要考虑是所有的特殊情况
if(province.equals("所有")){
for (int i = 0i <citys.size()i++) {
cityBox.addItem(citys.get(i).getCity())
}
}else{
for (int i = 0i <citys.size()i++) {
if(citys.get(i).getProvince().equals(province)){
cityBox.addItem(citys.get(i).getCity())
}
}
}
//在branch下拉列表中 遍历branchs,如果branchs[i]的省份属性和它相同则添加进去,其中要考虑是所有的特殊情况
if(province.equals("所有")){
for (int i = 0i <branchs.size()i++) {
branchBox.addItem(branchs.get(i).getBranch())
}
}else{
for (int i = 0i <branchs.size()i++) {
if(branchs.get(i).getProvince().equals(province)){
branchBox.addItem(branchs.get(i).getBranch())
}
}
}
}
})
//监听cityBox下拉列表
cityBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
branchBox.removeAllItems()
branchBox.addItem("所有")
if(cityBox.getSelectedItem()==null){
return
}
String city=cityBox.getSelectedItem().toString()//得到当前点中的值
if(city.equals("所有")){//如果是所有,则看省份框中是什么值
if(provinceBox.getSelectedItem().equals("所有")){
for (int i = 0i <branchs.size()i++) {
branchBox.addItem(branchs.get(i).getBranch())
}
}else{
for (int i = 0i <branchs.size()i++) {
if(branchs.get(i).getProvince().equals(provinceBox.getSelectedItem())){
branchBox.addItem(branchs.get(i).getBranch())
}
}
}
}else{
for (int i = 0i <branchs.size()i++) {
if(city.equals(branchs.get(i).getCity())){
branchBox.addItem(branchs.get(i).getBranch())
}
}
}
}
})
}
private void showMe(){
this.setVisible(true)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
this.pack()
}
public static void main(String[] args) {
new Test().showMe()
}
} //下面是要用的2个类
class City{//城市类
private String city//城市名
private String province//所属省份
public City() {
// TODO Auto-generated constructor stub
}
public City(String province,String city) {
super()
this.province = province
this.city = city
} public String getCity() {
return city
}
public void setCity(String city) {
this.city = city
}
public String getProvince() {
return province
}
public void setProvince(String province) {
this.province = province
}
}
class Branch{//网点类
private String province//所属省份
private String city//所属城市
private String branch//网点名 public Branch(String province, String city, String branch) {
super()
this.province = province
this.city = city
this.branch = branch
}
public String getBranch() {
return branch
}
public void setBranch(String branch) {
this.branch = branch
}
public String getCity() {
return city
}
public void setCity(String city) {
this.city = city
}
public String getProvince() {
return province
}
public void setProvince(String province) {
this.province = province
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)