【发布时间】:2015-03-25 15:32:54
【问题描述】:
我要做的是使用数组/数组列表存储来自用户的输入数据,然后将其显示在 JTable 上。我有两个用于 Jtable 的不同对话框/类和另一个用于用户输入的对话框,因此当他们单击 JButtonAdd 时,它将自动在另一个对话框/类上的 JTbale 上显示数据。我完全不知道该怎么做。这是我到目前为止提出的代码。
**MAIN Program**
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class StartProgram extends JDialog {
private JTable tableInfo;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
StartProgram dialog = new StartProgram();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
@SuppressWarnings("serial")
public StartProgram() {
getContentPane().setBackground(new Color(153, 255, 153));
setBounds(100, 100, 550, 500);
getContentPane().setLayout(null);
JButton btnDelete = new JButton("Delete");
btnDelete.setBounds(379, 11, 145, 23);
btnDelete.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
JOptionPane.showConfirmDialog(null, "Are you sure you want to delete?");
}
});
getContentPane().add(btnDelete);
JButton btnAddQueueNumber = new JButton("Add Queue Number");
btnAddQueueNumber.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
AddQueueNumber dialog = new AddQueueNumber();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
});
btnAddQueueNumber.setBounds(10, 11, 145, 23);
getContentPane().add(btnAddQueueNumber);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(10, 45, 514, 405);
getContentPane().add(scrollPane);
tableInfo = new JTable();
tableInfo.setShowGrid(false);
scrollPane.setViewportView(tableInfo);
tableInfo.setModel(new DefaultTableModel(
new Object[][] {
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
{null, null, null, null, null},
},
new String[] {
"Queue Number", "Name", "Interviewer", "Time", "Room"
}
) {
boolean[] columnEditables = new boolean[] {
false, false, false, false, false
};
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
JButton btnSearch = new JButton("Search");
btnSearch.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Search dialog = new Search();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
}
});
btnSearch.setBounds(164, 11, 145, 23);
getContentPane().add(btnSearch);
}
}
AddQueueNumber 类
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import java.awt.Color;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class AddQueueNumber extends JDialog {
private final JPanel contentPanel = new JPanel();
private JTextField tfQueueNumber;
private JTextField tfName;
private JTextField tfInterviewer;
private JTextField tfTime;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
AddQueueNumber dialog = new AddQueueNumber();
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Create the dialog.
*/
public AddQueueNumber() {
setBounds(100, 100, 270, 235);
getContentPane().setLayout(new BorderLayout());
contentPanel.setBackground(new Color(255, 255, 255));
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(null);
JLabel lblQueueNumber = new JLabel("Queue Number");
lblQueueNumber.setBounds(10, 11, 93, 14);
contentPanel.add(lblQueueNumber);
tfQueueNumber = new JTextField();
tfQueueNumber.setBounds(98, 8, 146, 20);
contentPanel.add(tfQueueNumber);
tfQueueNumber.setColumns(10);
tfName = new JTextField();
tfName.setBounds(98, 39, 146, 20);
contentPanel.add(tfName);
tfName.setColumns(10);
JLabel lblName = new JLabel("Name");
lblName.setBounds(10, 42, 78, 14);
contentPanel.add(lblName);
tfInterviewer = new JTextField();
tfInterviewer.setBounds(98, 70, 146, 20);
contentPanel.add(tfInterviewer);
tfInterviewer.setColumns(10);
JLabel lblInterviewer = new JLabel("Interviewer");
lblInterviewer.setBounds(10, 73, 78, 14);
contentPanel.add(lblInterviewer);
tfTime = new JTextField();
tfTime.setBounds(98, 101, 146, 20);
contentPanel.add(tfTime);
tfTime.setColumns(10);
JLabel lblTime = new JLabel("Time");
lblTime.setBounds(10, 104, 78, 14);
contentPanel.add(lblTime);
JComboBox cbRoom = new JComboBox();
cbRoom.setModel(new DefaultComboBoxModel(new String[] {" ", "Circle Room", "Square Room", "Triangle Room", "Pentagon Room", "Rectangle Room"}));
cbRoom.setBounds(98, 132, 146, 20);
contentPanel.add(cbRoom);
JLabel lblRoom = new JLabel("Room");
lblRoom.setBounds(10, 135, 78, 14);
contentPanel.add(lblRoom);
{
JPanel buttonPane = new JPanel();
buttonPane.setBackground(new Color(255, 255, 255));
buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
//This is where the data will be saved on the JTable
JTable tableInfo = new JTable();
DefaultTableModel model = (DefaultTableModel) tableInfo.getModel();
if (!tfQueueNumber.getText().trim().equals ("")){
model.addRow(new Object[]{ tfQueueNumber.getText(), tfName.getText(),tfInterviewer.getText(), cbRoom.getSelectedItem().toString(),tfTime.getText() });
} else {
JOptionPane.showMessageDialog(null, "Queue number should not be blank!");
}
}
});
okButton.setActionCommand("Add");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
{
JButton cancelButton = new JButton("Cancel");
cancelButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
dispose();
}
});
cancelButton.setActionCommand("Cancel");
buttonPane.add(cancelButton);
}
}
}
}
【问题讨论】:
-
“我完全不知道该怎么做” 查看你的课程笔记和课文。 “需要很多帮助,因为我的教授不是一个好老师。:)” 是一个可怜的学生责怪老师。但无论如何,SO 不是招聘导师或提供一般帮助的地方。投票结束。
-
谢谢.. 我知道这有点太多了,但是自从我 3 个月前刚开始时,我对编程的了解较少,所以创建这个项目对我来说是压倒性的。谢谢和更多的力量..
标签: java swing arraylist jtable tablemodel