当前位置:  技术问答>java相关

能给个jtable的例子吗?

    来源: 互联网  发布时间:2015-10-21

    本文导语:  简单的能显示数据就行了,但要是applet,不能是连数据库,数组或Vector都行 | //刚做的作业题,正好对上 package p6_13; import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; impo...

简单的能显示数据就行了,但要是applet,不能是连数据库,数组或Vector都行

|
//刚做的作业题,正好对上

package p6_13;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.math.*;
import java.util.*;
import javax.swing.table.*;

class PhoneCard
{
  //variables:--------------------------------
  long cardNumber;
  int passWord;
  double balance;
  boolean connected;
  static String connectNumber;
  static double additionalfee;

  //constructor:------------------------------
  PhoneCard(int pw,double b)
  {
    cardNumber=createcardnum();
    passWord=pw;
    if(b>0)
      balance=b;
    else
      System.exit(1);
    connectNumber="200";
    additionalfee=0.1;
    connected=false;
  }

  //methods:----------------------------------
  long createcardnum()
  {
    double a=Math.random();
    long r=(long)(a*10000000);
    return r;
  }

  void setCardNumber(long cardNumber)
  {
    this.cardNumber=cardNumber;
  }

  void setPassWord(int passWord)
  {
    this.passWord=passWord;
  }

  void setBalence(double balance)
  {
    this.balance=balance;
  }

  void setconnected(boolean connected)
  {
    this.connected=connected;
  }
  public String toString()
  {
    String s=new String();
    s+="电话卡接入号码:  "+connectNumber+'n';
    s+="电话卡卡号:      "+cardNumber+'n';
    s+="电话卡密码:      "+passWord+'n';
    s+="剩余金额:        "+balance+'n';
    s+="附加费用:        "+additionalfee+'n';
    if(connected)
      s+="电话已接通"+'n';
    else
      s+="电话未接通"+'n';
    return s;
  }
}

public class p6_13 extends JApplet implements ActionListener
{
  Vector cardlist;
  PhoneCard nowcard;
  JButton addcard;
  JPasswordField psw;
  JTextField money;
  JTextArea info;
  JLabel l1,l2,l3;
  JTable table;
  public void init()
  {
    //变量初始化:
    cardlist=new Vector(100,50);
    addcard=new JButton("添加");
    l1=new JLabel("密码:",JLabel.CENTER);
    l2=new JLabel("金额:",JLabel.CENTER);
    l3=new JLabel("电话卡信息:",JLabel.CENTER);
    psw=new JPasswordField(10);
    money=new JTextField();
    Vector names=new Vector();
    names.add("卡号");
    names.add("金额");
    names.add("密码");
    table=new JTable(new mytable(cardlist));
    table.setPreferredScrollableViewportSize(new Dimension(550,30));
    JScrollPane scrollPane=new JScrollPane(table);
    info=new JTextArea(13,3);

    //添加控件:
    Container contentPane=this.getContentPane();
    contentPane.setLayout(new BorderLayout());
    JPanel panelup=new JPanel(new GridLayout(1,10));
    JPanel paneldown=new JPanel(new BorderLayout());
    panelup.add(l1);
    panelup.add(psw);
    panelup.add(l2);
    panelup.add(money);
    panelup.add(addcard);
    paneldown.add(l3,BorderLayout.NORTH);
    paneldown.add(info,BorderLayout.SOUTH);
    contentPane.add(panelup,BorderLayout.NORTH);
    contentPane.add(scrollPane,BorderLayout.CENTER);
    contentPane.add(paneldown,BorderLayout.SOUTH);

    //设置监听:
    addcard.addActionListener(this);
  }
  //插入向量
  void insert()
  {
    boolean inserted=false;
    int l=cardlist.toArray().length;
    int i;
    if(l==0)
    {
      inserted=true;
      cardlist.insertElementAt(nowcard,0);
    }
    for(i=0;inowcard.balance&&!inserted)
      {
        cardlist.insertElementAt(nowcard,i);
        inserted=true;
      }
    }
    if(!inserted)
      cardlist.insertElementAt(nowcard,i);
  }
  public void actionPerformed(ActionEvent e)
  {
    int password=Integer.parseInt(new String(psw.getPassword()));
    double balance=Double.valueOf(money.getText()).doubleValue();
    nowcard=new PhoneCard(password,balance);
    insert();
    table.setModel(new mytable(cardlist));
    info.setText(nowcard.toString());

  }
}

class mytable extends AbstractTableModel
{
  Vector cardlist;
  public mytable(Vector list)
  {
    cardlist=list;
  }

  public int getColumnCount()
  {
    return 3;
  }

  public int getRowCount()
  {
    return cardlist.toArray().length;
  }

  public Object getValueAt(int row,int col)
  {
    if(col==0)
      return Long.toString(((PhoneCard)cardlist.elementAt(row)).cardNumber);
    if(col==1)
      return Double.toString(((PhoneCard)cardlist.elementAt(row)).balance);
    if(col==2)
      return Integer.toString(((PhoneCard)cardlist.elementAt(row)).passWord);
    return null;
  }

  public String getColumnName(int col)
  {
    if(col==0)
      return "卡号";
    if(col==1)
      return "金额";
    if(col==2)
      return "密码";
    return "";
  }
}


    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.swing类jtable的类成员方法: jtable定义及介绍
  • JTable:如何在JTable中加入新的column和加入的row,如何在JTable中设置指定坐标上的值?
  • java命名空间javax.swing类jtable.accessiblejtable的类成员方法: jtable.accessiblejtable定义及介绍
  • 一个比较笨的问题:如何用两个Vector对象动态生成一个JTable?及从JTable里取得数据。
  • java命名空间javax.swing类jtable.accessiblejtable.accessiblejtablecell的类成员方法: jtable.accessiblejtable.accessiblejtablecell定义及介绍
  • 初始化jtable时,我只想生成一个只有表头,即列名,还没有数据行的jtable。该如何实现?
  • java命名空间javax.swing类jtable的类成员方法: selectionbackground定义及介绍
  • JTABLE的难题:我想在鼠标右键点击JTABLE时被点中的那一行被选中,如何实现?
  • java命名空间javax.swing类jtable的类成员方法: configureenclosingscrollpane定义及介绍
  • JTable里面点击cell下拉JTable
  • java命名空间javax.swing类jtable的类成员方法: setsurrendersfocusonkeystroke定义及介绍
  • 关于JTable:选择表里的一行,要求新弹出的一窗口里面TextField显示这行各个字段的内容,JTable有这样的ActionListener吗?
  • java命名空间javax.swing类jtable的类成员方法: getmodel定义及介绍
  • JTable的刷新问题!
  • java命名空间javax.swing类jtable的类成员方法: getrowcount定义及介绍
  • 怎样在JTable中得到和设置每个单元的值,给20分,大虾教我!
  • java命名空间javax.swing类jtable的类成员方法: getaccessiblecontext定义及介绍
  • 求救:如何在JTable中动态添加一行?
  • java命名空间javax.swing枚举jtable.printmode的类成员方法: normal定义及介绍
  • java中查询的数据库记录如何在JTable控件中显示?
  • java命名空间javax.swing类jtable的类成员方法: gettooltiptext定义及介绍
  • 如何得到JScrollPane中的JTable


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3