package nobody;//test.java
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
public class Test extends JFrame {
private JPanel contentPane;
private JTextField nameField;
private JTextField priceField;
private JTextField numField;
public JTable table;
private JButton addButton;
private DefaultTableModel dtm;
public static Test frame1 = new Test();
private JButton button;
public static int kinds=2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
frame1.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Test() {
setTitle("進貨");
setTitle("添加商品");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 477, 367);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//名稱標簽
JLabel lblNewLabel = new JLabel("\u540D\u79F0");
lblNewLabel.setBounds(249, 17, 60, 15);
contentPane.add(lblNewLabel);
//價格標簽
JLabel lblNewLabel_1 = new JLabel("\u4EF7\u683C:");
lblNewLabel_1.setBounds(249, 119, 54, 15);
contentPane.add(lblNewLabel_1);
//數量標簽
JLabel lblNewLabel_3 = new JLabel("數量");
lblNewLabel_3.setBounds(249, 221, 54, 15);
contentPane.add(lblNewLabel_3);
//名稱文本輸入框
nameField = new JTextField();
nameField.setBounds(309, 13, 131, 21);
contentPane.add(nameField);
nameField.setColumns(10);
//價格文本輸入框
priceField = new JTextField();
priceField.setBounds(309, 115, 131, 21);
contentPane.add(priceField);
priceField.setColumns(10);
//數量文本輸入框
numField = new JTextField();
numField.setBounds(309, 217, 131, 21);
contentPane.add(numField);
numField.setColumns(10);
//資料添加按鈕
addButton = new JButton("添加");
addButton.setBounds(309, 283, 93, 23);
contentPane.add(addButton);
//滾動窗面板
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 10, 218, 250);
contentPane.add(scrollPane);
//將表格框添加入滾動窗
table = new JTable();
//設定表格默認模型
dtm = new DefaultTableModel(
new Object[][] { { "\u519C\u592B\u4E0E\u86C7\u77FF\u6CC9\u6C34", "2", "200" },
{ "\u5EB7\u5E05\u5085\u65B9\u4FBF\u9762", "5", "100"}, },
new String[] { "\u540D\u79F0", "\u4EF7\u683C", "\u6570\u91CF"});
table.setModel(dtm);
table.setBounds(10, 10, 200, 200);
// 設定首選大小[除了表單以外的組件都需要設定首選大小]
scrollPane.setPreferredSize(new Dimension(500, 400));
// 設定自動出現滾動條
scrollPane.setAutoscrolls(true);
scrollPane.setViewportView(table);
button = new JButton("\u8FD4\u56DE\u4E3B\u9875");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Start start = new Start();
start.setVisible(true);
dispose();
}
});
button.setBounds(65, 281, 113, 27);
contentPane.add(button);
/**
* 創建按鈕點擊事件添加資料
*/
addButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent args0) {
kinds++;
String name = nameField.getText();
try{
table.getCellEditor(kinds,0).stopCellEditing();
}catch(Exception e){
}
nameField.setText("");
String price =priceField.getText() ;
try{
table.getCellEditor(kinds,1).stopCellEditing();
}catch(Exception e){
}
priceField.setText("");
String num = numField.getText();
try{
table.getCellEditor(kinds,2).stopCellEditing();
}catch(Exception e){
}
numField.setText("");
//將文本框的內容添加入表格
dtm.addRow(new String[]{name,price,num});
}
});
}
}
package nobody;//buygoods.java
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JTable;
import javax.swing.border.BevelBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Buygoods extends JFrame {
private JPanel contentPane;
private JTextField nameField;
private JTextField priceField;
private JTextField numField;
public JTextField buynum;
private JTable table;
private JButton buyButton;
private DefaultTableModel dtm;
private JButton button;
Test test=new Test();
String name[]=new String [test.kinds];
String price[]=new String[test.kinds];
String num[]=new String[test.kinds];
private JButton button_1;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Buygoods frame = new Buygoods();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Buygoods() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setToolTipText("");
scrollPane_1.setBounds(14, 13, 393, 196);
contentPane.add(scrollPane_1);
table=new JTable();
dtm = new DefaultTableModel(
new String[][] { { "\u519C\u592B\u4E0E\u86C7\u77FF\u6CC9\u6C34", "2", "200" ,"\u4F8B\u5B50\uFF0C\u4E0D\u53EF\u8D2D\u4E70"},
{ "\u5EB7\u5E05\u5085\u65B9\u4FBF\u9762", "5", "100","\u4F8B\u5B50\uFF0C\u4E0D\u53EF\u8D2D\u4E70"}, },
new String[] { "\u540D\u79F0", "\u4EF7\u683C", "\u6570\u91CF","\u8D2D\u4E70\u6570\u91CF"});
table.setModel(dtm);
table.setBounds(10, 10, 200, 200);
// 設定首選大小[除了表單以外的組件都需要設定首選大小]
scrollPane_1.setPreferredSize(new Dimension(500, 400));
// 設定自動出現滾動條
scrollPane_1.setAutoscrolls(true);
scrollPane_1.setViewportView(table);
for(int i=2;i<test.kinds;i++){
try{
name[i]=test.table.getValueAt(i, 0).toString();
}catch(Exception e){
}
try{
price[i]=test.table.getValueAt(i, 1).toString();
}catch(Exception e){
}
try{
num[i]=test.table.getValueAt(i, 2).toString();
}catch(Exception e){
}
dtm.addRow(new String []{name[i],price[i],num[i]});
System.out.println(name[i]+num[i]+price[i]);
}
button = new JButton("\u786E\u8BA4\u8D2D\u4E70");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Money money=new Money();
money.setVisible(true);
dispose();
}
});
button.setBounds(45, 213, 113, 27);
contentPane.add(button);
button_1 = new JButton("\u8FD4\u56DE\u4E3B\u9875");
button_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Start start=new Start();
start.setVisible(true);
dispose();
}
});
button_1.setBounds(260, 213, 113, 27);
contentPane.add(button_1);
}
}
uj5u.com熱心網友回復:
有大佬在嗎
uj5u.com熱心網友回復:
你的問題描述清楚了嗎?顯示為 null?哪里顯示為 null 了?
我將你的代碼運行了一下,Buygoods 也能正常顯示出表格和其中的內容啊
uj5u.com熱心網友回復:

之前的兩行是我設定好的,只要在test里輸入,輸入的內容在buygoods里為空
uj5u.com熱心網友回復:
我嘗試用stopCellEditor方法,結果運行時出錯,java. lang. NullPointerException。
uj5u.com熱心網友回復:
在test 把dtm變數設定set get方法, 然后再Buygoods get該dtm。不然你怎么傳遞?
uj5u.com熱心網友回復:
請問下具體該怎么做呢。
uj5u.com熱心網友回復:
我嘗試用stopCellEditor方法,結果運行時出錯,java. lang. NullPointerException。
在test 把dtm變數設定set get方法, 然后再Buygoods get該dtm。不然你怎么傳遞?
請問下具體該怎么做呢。
你的程式我看的很暈,為什么每個類都有main ,還是就是test和buygoods誰呼叫誰,還有一個方法就是test把添加的資料寫入檔案,然后buygoods直接從檔案讀取。
uj5u.com熱心網友回復:
我嘗試用stopCellEditor方法,結果運行時出錯,java. lang. NullPointerException。
在test 把dtm變數設定set get方法, 然后再Buygoods get該dtm。不然你怎么傳遞?
請問下具體該怎么做呢。
你的程式我看的很暈,為什么每個類都有main ,還是就是test和buygoods誰呼叫誰,還有一個方法就是test把添加的資料寫入檔案,然后buygoods直接從檔案讀取。
我的想法是通過test. java輸入資料進test所創建的JTable中,再從buyygoods中訪問。如果要寫入檔案的話可能太復雜,我還不太會
。
uj5u.com熱心網友回復:
我的想法是通過test. java輸入資料進test所創建的JTable中,再從buyygoods中訪問。如果要寫入檔案的話可能太復雜,我還不太會。
buygoods 中 添加
public void setDtm(DefaultTableModel dtm) {
this.dtm = dtm;
}
實體化buygoods后,把test中的資料 直接set方法傳過去,這個是基礎知識。
uj5u.com熱心網友回復:
set方法是要自己寫的是吧uj5u.com熱心網友回復:
我的想法是通過test. java輸入資料進test所創建的JTable中,再從buyygoods中訪問。如果要寫入檔案的話可能太復雜,我還不太會。
buygoods 中 添加
public void setDtm(DefaultTableModel dtm) {
this.dtm = dtm;
}
實體化buygoods后,把test中的資料 直接set方法傳過去,這個是基礎知識。
請問set方法是要自己寫的嗎
uj5u.com熱心網友回復:
我的想法是通過test. java輸入資料進test所創建的JTable中,再從buyygoods中訪問。如果要寫入檔案的話可能太復雜,我還不太會。
buygoods 中 添加
public void setDtm(DefaultTableModel dtm) {
this.dtm = dtm;
}
實體化buygoods后,把test中的資料 直接set方法傳過去,這個是基礎知識。
我編程水平很低,還望您別介意
uj5u.com熱心網友回復:
請問set方法是要自己寫的嗎
eclispe中右擊程式, 點擊 source--》Generate getter and setter ---》選擇不需要get set方法的變數,然后可以自動生成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74614.html
標籤:Java SE
