在JPanel中从服务器接收和更新数据的正确方法

时间:2015-03-31 11:21:14

标签: java jpanel server

我有一个Java服务器线程,它从数据库中检索数据并将它们发送到我的客户端。主客户端GUI由JTabbedPane表示,我希望每个选项卡(JPanel s)都能接收自己的数据并显示它们(例如,主页面板,购买面板,配置文件面板等)。

我所做的是将ObjectInput / Output流传递给每个面板,让他接收数据并通过从主类调用面板对象上的getAndSet方法来更新它们(见下文)。这是正确的做法吗?

以下是我的某个面板的示例

public class PurchasesPanel extends JPanel {

    private JTable table;
    private JScrollPane scrollPane;
    private ObjectInputStream input;
    private ObjectOutputStream output;
    private static final String PANEL_ID = "purchases";

    public PurchasesPanel(ObjectInputStream input, ObjectOutputStream output) {
        this.output = output;
        this.input = input;
        createGUI();
    }

    public void createGUI() {
        //Impostazione del layout e creazione della tabella
        setLayout(new BorderLayout());
        table = new JTable();
        scrollPane = new JScrollPane(table);
        add(scrollPane);
    }

    public void getAndSetTableModel() {
        try {
            output.writeUTF(PANEL_ID);
            output.flush();

            DefaultTableModel model = (DefaultTableModel) input.readObject();
            table.setModel(model);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Si è verificato un errore con il pannello riepilogo acquisti. ");
        }
    }
}

0 个答案:

没有答案