All Downloads are FREE. Search and download functionalities are using the official Maven repository.

helper.sample.ChatRoom Maven / Gradle / Ivy

The newest version!
package helper.sample;

import helper.DateTimeHelper;
import java.util.Date;
import javafx.application.Application;
import javafx.stage.Stage;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.Timer;
import javax.swing.UIManager;
import javax.swing.WindowConstants;

/**
 * 聊天室 demo。
 *
 * @author mrzhqiang
 */
public final class ChatRoom extends Application {
  private JPanel panelContent;
  private JTextArea chatHistory;
  private JLabel labelSystemTime;
  private JLabel labelParse;
  private JLabel labelUntilNow;

  private Date startTime;
  private Timer timer;

  public static void main(String[] args) {
    String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
    try {
      UIManager.setLookAndFeel(lookAndFeel);
    } catch (Exception e) {
      e.printStackTrace();
    }
    launch(args);
  }

  @Override public void init() {
    startTime = new Date();
    timer = new Timer(1000, e -> {
      labelSystemTime.setText(DateTimeHelper.format(new Date()));
      Date parse = DateTimeHelper.parse(labelSystemTime.getText());
      if (parse != null) {
        labelParse.setText(parse.toString());
      }
      labelUntilNow.setText(DateTimeHelper.untilNow(startTime));
      String content = String.format("startTime:%s %s", DateTimeHelper.formatDate(startTime),
          DateTimeHelper.formatTime(startTime));
      Message message = Message.ofText(content);
      chatHistory.append(message.toString());
      chatHistory.append("\n");
    });
    timer.start();
  }

  @Override public void start(Stage primaryStage) {
    JFrame frame = new JFrame("ChatRoom");
    frame.setContentPane(panelContent);
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.pack();
    frame.setResizable(false);
    frame.setLocationRelativeTo(frame.getOwner());
    frame.setVisible(true);
  }

  @Override public void stop() throws Exception {
    super.stop();
    timer.stop();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy