我回顧了下,是曾經(jīng)答過一個表格的問題,下面就是所有的源代碼了。大體思路是設(shè)置表格的表頭渲染器getTableHeader().setUI(new UI());下面這種做法能滿足特定表格需求,但沒法作為一個通用的模板。按這個做法把內(nèi)容換一下應(yīng)該就行了。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了龍州免費建站歡迎大家使用!
import javax.swing.*;
import javax.swing.plaf.basic.BasicTableHeaderUI;
import javax.swing.table.JTableHeader;
import java.awt.*;
/************************************************************
* 倉儲(一日游、普通客戶)操作的表格。
* @author 胡海波
*
*/
public class StoreTable extends JTable {
public StoreTable() {
super(0, 13);
this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
this.getTableHeader().setUI(new UI());
}
// 表頭繪制器*********************************************************************
private class UI extends BasicTableHeaderUI {
private JTableHeader header;
public void paint(Graphics g, JComponent c) {
header = (JTableHeader) c;
getTableHeader().setPreferredSize(new Dimension(StoreTable.this.getWidth(), 45));// 設(shè)置表頭大小。橫坐標必須足夠大,
//否則會出現(xiàn)繪制不完全以及閃爍現(xiàn)象
//分類
JLabel label=getLabel("分類");
rendererPane.paintComponent(g, label, header, 0, 0, getWidth(0), 45, true);
//到貨日期
label=getLabel("到貨日期");
rendererPane.paintComponent(g, label, header, getX(1), 0, getWidth(1), 45, true);
//送貨日期
label=getLabel("送貨日期");
rendererPane.paintComponent(g, label, header, getX(2), 0, getWidth(2), 45, true);
//收款代理
label=getLabel("收款代理");
rendererPane.paintComponent(g, label, header, getX(3), 0, getWidth(3), 45, true);
//客戶**************************************************************************
label=getLabel("客戶");
rendererPane.paintComponent(g, label, header, getX(4), 0, getWidth(4)+getWidth(5), 30, true);
label=getLabel("上游");
rendererPane.paintComponent(g, label, header, getX(4), 30, getWidth(4), 15, true);
label=getLabel("下游");
rendererPane.paintComponent(g, label, header, getX(5), 30, getWidth(5), 15, true);
//報關(guān)單號**********************************************************************
label=getLabel("報關(guān)單號");
rendererPane.paintComponent(g, label, header, getX(6), 0, getX(10)-getX(6), 15, true);
label=getLabel("上游");
rendererPane.paintComponent(g, label, header, getX(6), 15, getWidth(6)+getWidth(7), 15, true);
label=getLabel("下游");
rendererPane.paintComponent(g, label, header, getX(8), 15, getWidth(8)+getWidth(9), 15, true);
label=getLabel("進口");
rendererPane.paintComponent(g, label, header, getX(6), 30, getWidth(6), 15, true);
label=getLabel("出口");
rendererPane.paintComponent(g, label, header, getX(7), 30, getWidth(7), 15, true);
label=getLabel("進口");
rendererPane.paintComponent(g, label, header, getX(8), 30, getWidth(8), 15, true);
label=getLabel("出口");
rendererPane.paintComponent(g, label, header, getX(9), 30, getWidth(9), 15, true);
//業(yè)務(wù)員
label=getLabel("業(yè)務(wù)員");
rendererPane.paintComponent(g, label, header, getX(10), 0, getWidth(10), 45, true);
//操作員
label=getLabel("操作員");
rendererPane.paintComponent(g, label, header, getX(11), 0, getWidth(11), 45, true);
//審核人
label=getLabel("審核人");
rendererPane.paintComponent(g, label, header, getX(12), 0, getWidth(12), 45, true);
}
// 得到指定列的起始坐標
private int getX(int column){
int x=0;
for(int i=0;icolumn;i++)
x+=header.getColumnModel().getColumn(i).getWidth();
return x;
}
//得到指定列的寬度
private int getWidth(int column){
return header.getColumnModel().getColumn(column).getWidth();
}
//得到具有指定文本的標簽
private JLabel getLabel(String text){
JLabel label = new JLabel(text, JLabel.CENTER);
label.setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return label;
}
}
public static void main(String[] args){
JFrame frame=new JFrame();
frame.setSize(800,300);
frame.setDefaultCloseOperation(3);
frame.getContentPane().add(new JScrollPane(new StoreTable()));
frame.setVisible(true);
}
}
第一個不就是一對多嗎? 我給你看看已訂單號進行關(guān)聯(lián)
訂單號,訂單日期,用戶姓名,送貨地址
1 2015/9/1 kill 北京
訂單項id,訂單號,商品名稱,商品價格,商品數(shù)量)
123 1 泡面 10 100
223 1 純凈水 11 111
省,市,區(qū),街道 訂單號
1 1 1 1 1
2 2 2 2 1
strust2 (我沒有用過不過我一般是這樣做的)
直接用用后臺進行校驗
package?Test;
import?java.util.LinkedHashMap;
import?java.util.Map;
import?java.util.Map.Entry;
import?java.util.Scanner;
public?class?Test?{
public?static?void?main(String[]?args)?{
init();//初始化
MapString,String?map?=?new?LinkedHashMap();
while(true){
Scanner?in=?new?Scanner(System.in);
map?=?buy(in,map);//選擇
System.out.println();
System.out.println("還要繼續(xù)購物嗎?(Y/N)");
String?jx?=?in.nextLine();
if(jx.equals("N")){
break;
}
}
print(map);
}
public?static?void?print(MapString,?String?m){
System.out.println("\n\n\n******************");
System.out.println("???????購物車清單");
Integer?hj?=?0;
for?(EntryString,?String?entry?:?m.entrySet())?{
String?key?=?entry.getKey();
String?value?=?entry.getValue();
if(key.equals("1")){
hj?+=?Integer.parseInt(value)*3;
System.out.println("哇哈哈純凈水:?"+value+"件,合計:¥"+Integer.parseInt(value)*3);
}else?if(key.equals("2")){
hj?+=?Integer.parseInt(value)*5;
System.out.println("康師傅方便面:?"+value+"件,合計:¥"+Integer.parseInt(value)*5);
}else?if(key.equals("3")){
hj?+=?Integer.parseInt(value)*4;
System.out.println("可口可樂:?"+value+"件,合計:¥"+Integer.parseInt(value)*4);
}
}
System.out.println("合計金額:¥"+hj);
}
public?static?void?init(){
System.out.println("******************");
System.out.println("\t商品列表\n");
System.out.println("??????????????商品名稱????????????????價格");
System.out.println("1.???哇哈哈純凈水????????¥3");
System.out.println("2.???康師傅方便面????????¥5");
System.out.println("3.???可口可樂????????????????¥4");
System.out.println("******************");
}
public?static?MapString,String?buy(Scanner?scan,MapString,String?m){
System.out.print("請輸入編號:");
String?bh?=?scan.nextLine();
System.out.print("請輸入購買數(shù)量:");
String?num?=?scan.nextLine();
if(m.size()0??m.keySet().contains(bh)){
m.put(bh,(Integer.parseInt(bh)+Integer.parseInt(num))+"");
}else{
m.put(bh,?num);
}
return?m;
}
}
算是最簡單的吧
package cn.job01;
import java.util.Scanner;
public class Lx07 {
public static void choice() {
System.out.println("登陸菜單 ");
System.out.println("1登陸系統(tǒng)");
System.out.println("2退出");
}
static void choice1() {
System.out.println("購物管理系統(tǒng)客戶信息");
System.out.println("1顯示所有客戶信息");
System.out.println("2添加客戶信息");
System.out.println("3修改客戶信息");
System.out.println("4查詢客戶信息");
}
static void choice2() {
System.out.println("購物管理系統(tǒng)真情回饋");
System.out.println("1幸運大放送");
System.out.println("2幸運抽獎");
System.out.println("3生日問候");
}
public static void main(String[] args) {
choice();
Scanner input = new Scanner(System.in);
System.out.println("請輸入1or2");
int num = input.nextInt();
switch (num) {
case 1:
System.out.println("主菜單");
System.out.println("1客戶信息管理");
System.out.println("2購物結(jié)算");
System.out.println("3真情回饋");
System.out.println("4注銷");
break;
}
System.out.println("選擇輸入數(shù)字");
int num1 = input.nextInt();
switch (num1) {
case 1:
choice1();
break;
case 2:
System.out.println("購物結(jié)算");
break;
case 3:
choice2();
break;
case 4:
choice();
break;
}
}
}
網(wǎng)站題目:送貨java代碼的簡單介紹
本文來源:http://chinadenli.net/article34/hppspe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站改版、動態(tài)網(wǎng)站、定制開發(fā)、外貿(mào)網(wǎng)站建設(shè)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)