Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main;
- import java.awt.EventQueue;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JTable;
- import java.awt.BorderLayout;
- import javax.swing.JToggleButton;
- import javax.swing.event.ChangeEvent;
- import javax.swing.event.ChangeListener;
- import javax.swing.BoxLayout;
- import javax.swing.JCheckBox;
- public class Main {
- private JFrame frame;
- private PanelTable panelTable;
- private PanelTable panelTable2;
- private JToggleButton btnStart;
- private JPanel panel;
- private JCheckBox chckbxAutoResize;
- private JCheckBox chckbxAutoResize2;
- public static void main(String[] args) {
- EventQueue.invokeLater(new Runnable() {
- public void run() {
- try {
- Main window = new Main();
- window.frame.setVisible(true);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
- public Main() {
- initialize();
- }
- private void initialize() {
- frame = new JFrame();
- frame.setBounds(100, 100, 637, 582);
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel_1 = new JPanel();
- frame.getContentPane().add(panel_1, BorderLayout.SOUTH);
- btnStart = new JToggleButton("Start");
- btnStart.addChangeListener(new ChangeListener() {
- @Override
- public void stateChanged(ChangeEvent arg0) {
- if (btnStart.isSelected()) {
- btnStart.setText("Stop");
- run();
- } else {
- btnStart.setText("Start");
- }
- }
- });
- panel_1.add(btnStart);
- panel = new JPanel();
- frame.getContentPane().add(panel, BorderLayout.CENTER);
- panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
- panelTable = new PanelTable();
- panel.add(panelTable);
- chckbxAutoResize = new JCheckBox("Auto resize 1");
- chckbxAutoResize.setSelected(true);
- chckbxAutoResize.addChangeListener(new ChangeListener() {
- @Override
- public void stateChanged(ChangeEvent e) {
- if (chckbxAutoResize.isSelected()) {
- panelTable.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
- } else {
- panelTable.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
- }
- }
- });
- panelTable.add(chckbxAutoResize, BorderLayout.NORTH);
- panelTable2 = new PanelTable();
- panel.add(panelTable2);
- chckbxAutoResize2 = new JCheckBox("Auto resize 2");
- chckbxAutoResize2.setSelected(true);
- chckbxAutoResize2.addChangeListener(new ChangeListener() {
- @Override
- public void stateChanged(ChangeEvent e) {
- if (chckbxAutoResize2.isSelected()) {
- panelTable2.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
- } else {
- panelTable2.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
- }
- }
- });
- panelTable2.add(chckbxAutoResize2, BorderLayout.NORTH);
- }
- public PanelTable getPanelTable() {
- return panelTable;
- }
- public void setPanelTable(PanelTable panelTable) {
- this.panelTable = panelTable;
- }
- void run() {
- Thread th = new Thread(new Runnable() {
- public void run() {
- int count = 0;
- while (btnStart.isSelected()) {
- DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
- Date now = new Date();
- String time = formatter.format(now);
- panelTable.getModel().addRow(String.valueOf(count), "currency",
- "number", "target", "bet", "+profit", time);
- panelTable2.getModel().addRow(String.valueOf(count), "currency",
- "number", "target", "bet", "-profit", time);
- try {
- Thread.sleep(300);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- count++;
- }
- }
- });
- th.start();
- }
- }
- package main;
- import java.awt.Font;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.JTable;
- import javax.swing.ScrollPaneConstants;
- import java.awt.BorderLayout;
- public class PanelTable extends JPanel {
- private static final long serialVersionUID = 1L;
- private static JTable table;
- private MyTableModel model;
- public PanelTable() {
- model = new MyTableModel();
- table = new JTable(model);
- table.setDefaultRenderer(String.class, new RowRender());
- table.setFont(new Font("Tahoma", Font.PLAIN, 14));
- table.getTableHeader().setFont(new Font("Tahoma", Font.PLAIN, 14));
- table.setRowHeight(20);
- table.setPreferredScrollableViewportSize(table.getPreferredSize());
- table.setFillsViewportHeight(true);
- table.setShowGrid(false);
- table.setRowSelectionAllowed(false);
- table.setColumnSelectionAllowed(false);
- table.getTableHeader().setReorderingAllowed(false);
- JScrollPane scrollPane = new JScrollPane(table);
- scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
- scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
- setLayout(new BorderLayout(0, 0));
- add(scrollPane);
- }
- JTable getTable() {
- return table;
- }
- MyTableModel getModel(){
- return model;
- }
- }
- package main;
- public class LastBet {
- private String betId;
- private String coin;
- private String secret;
- private String target;
- private String size;
- private String profit;
- private String time;
- public LastBet(String betId, String coin, String secret, String target, String size, String profit, String time) {
- this.setBetId(betId);
- this.setCoin(coin);
- this.setSecret(secret);
- this.setTarget(target);
- this.setSize(size);
- this.setProfit(profit);
- this.setTime(time);
- }
- public void setBetId(String betId) {
- this.betId = betId;
- }
- public String getBetId() {
- return betId;
- }
- public void setCoin(String coin) {
- this.coin = coin;
- }
- public String getCoin() {
- return coin;
- }
- public void setSecret(String secret) {
- this.secret = secret;
- }
- public String getSecret() {
- return secret;
- }
- public void setTarget(String target) {
- this.target = target;
- }
- public String getTarget() {
- return target;
- }
- public void setSize(String size) {
- this.size = size;
- }
- public String getSize() {
- return size;
- }
- public void setProfit(String profit) {
- this.profit = profit;
- }
- public String getProfit() {
- return profit;
- }
- public String getTime(){
- return time;
- }
- public void setTime(String time){
- this.time = time;
- }
- }
- package main;
- import java.util.LinkedList;
- import javax.swing.table.AbstractTableModel;
- public class MyTableModel extends AbstractTableModel {
- private static final long serialVersionUID = 1L;
- private LinkedList<LastBet> rows;
- public MyTableModel() {
- this.rows = new LinkedList<>();
- }
- @Override
- public String getColumnName(int columnIndex) {
- switch (columnIndex) {
- case 0:
- return "Bet Id";
- case 1:
- return "Coin";
- case 2:
- return "Number";
- case 3:
- return "Target";
- case 4:
- return "Size";
- case 5:
- return "Profit";
- case 6:
- return "Time";
- }
- return "";
- }
- @Override
- public int getColumnCount() {
- return 7;
- }
- @Override
- public int getRowCount() {
- return rows.size();
- }
- @Override
- public Object getValueAt(int rowIndex, int columnIndex) {
- LastBet row = rows.get(rowIndex);
- switch (columnIndex) {
- case 0:
- return row.getBetId();
- case 1:
- return row.getCoin();
- case 2:
- return row.getSecret();
- case 3:
- return row.getTarget();
- case 4:
- return row.getSize();
- case 5:
- return row.getProfit();
- case 6:
- return row.getTime();
- }
- return "";
- }
- @Override
- public Class<?> getColumnClass(int columnIndex) {
- return String.class;
- }
- public void addRow(String BetId, String currency, String number, String target, String bet, String profit, String time){
- LastBet lastBet = new LastBet(BetId, currency, number, target, bet, profit, time);
- rows.addFirst(lastBet);
- while (rows.size() >= 101) {
- rows.removeLast();
- }
- fireTableRowsInserted(0, getRowCount());
- }
- }
- package main;
- import java.awt.Color;
- import java.awt.Component;
- import javax.swing.JTable;
- import javax.swing.SwingConstants;
- import javax.swing.table.DefaultTableCellRenderer;
- public class RowRender extends DefaultTableCellRenderer {
- private static final long serialVersionUID = 1L;
- public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
- int row, int column) {
- Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
- setHorizontalAlignment(SwingConstants.CENTER);
- String cellvalue = table.getValueAt(row, table.getColumnModel().getColumnIndex("Profit")).toString();
- if (cellvalue.charAt(0) == '-') {
- cell.setForeground(new Color(255, 99, 71));
- } else if (cellvalue.charAt(0) == '+') {
- cell.setForeground(new Color(0, 100, 0));
- } else if (cellvalue.charAt(0) == '#') {
- cell.setForeground(Color.BLACK);
- } else {
- cell.setForeground(Color.BLUE);
- }
- return cell;
- }
- }
Add Comment
Please, Sign In to add comment