Guest User

Untitled

a guest
Jul 28th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.47 KB | None | 0 0
  1. package main;
  2.  
  3. import java.awt.EventQueue;
  4. import java.text.DateFormat;
  5. import java.text.SimpleDateFormat;
  6. import java.util.Date;
  7. import javax.swing.JFrame;
  8. import javax.swing.JPanel;
  9. import javax.swing.JTable;
  10. import java.awt.BorderLayout;
  11. import javax.swing.JToggleButton;
  12. import javax.swing.event.ChangeEvent;
  13. import javax.swing.event.ChangeListener;
  14. import javax.swing.BoxLayout;
  15. import javax.swing.JCheckBox;
  16.  
  17. public class Main {
  18.  
  19. private JFrame frame;
  20. private PanelTable panelTable;
  21. private PanelTable panelTable2;
  22. private JToggleButton btnStart;
  23. private JPanel panel;
  24. private JCheckBox chckbxAutoResize;
  25. private JCheckBox chckbxAutoResize2;
  26.  
  27. public static void main(String[] args) {
  28. EventQueue.invokeLater(new Runnable() {
  29. public void run() {
  30. try {
  31. Main window = new Main();
  32. window.frame.setVisible(true);
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. });
  38. }
  39.  
  40. public Main() {
  41. initialize();
  42. }
  43.  
  44. private void initialize() {
  45. frame = new JFrame();
  46. frame.setBounds(100, 100, 637, 582);
  47. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  48.  
  49. JPanel panel_1 = new JPanel();
  50. frame.getContentPane().add(panel_1, BorderLayout.SOUTH);
  51.  
  52. btnStart = new JToggleButton("Start");
  53. btnStart.addChangeListener(new ChangeListener() {
  54.  
  55. @Override
  56. public void stateChanged(ChangeEvent arg0) {
  57. if (btnStart.isSelected()) {
  58. btnStart.setText("Stop");
  59. run();
  60. } else {
  61. btnStart.setText("Start");
  62. }
  63. }
  64. });
  65. panel_1.add(btnStart);
  66.  
  67. panel = new JPanel();
  68. frame.getContentPane().add(panel, BorderLayout.CENTER);
  69. panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
  70.  
  71. panelTable = new PanelTable();
  72. panel.add(panelTable);
  73.  
  74. chckbxAutoResize = new JCheckBox("Auto resize 1");
  75. chckbxAutoResize.setSelected(true);
  76. chckbxAutoResize.addChangeListener(new ChangeListener() {
  77.  
  78. @Override
  79. public void stateChanged(ChangeEvent e) {
  80. if (chckbxAutoResize.isSelected()) {
  81. panelTable.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
  82. } else {
  83. panelTable.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  84. }
  85. }
  86. });
  87. panelTable.add(chckbxAutoResize, BorderLayout.NORTH);
  88.  
  89. panelTable2 = new PanelTable();
  90. panel.add(panelTable2);
  91.  
  92. chckbxAutoResize2 = new JCheckBox("Auto resize 2");
  93. chckbxAutoResize2.setSelected(true);
  94. chckbxAutoResize2.addChangeListener(new ChangeListener() {
  95.  
  96. @Override
  97. public void stateChanged(ChangeEvent e) {
  98. if (chckbxAutoResize2.isSelected()) {
  99. panelTable2.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
  100. } else {
  101. panelTable2.getTable().setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
  102. }
  103. }
  104. });
  105. panelTable2.add(chckbxAutoResize2, BorderLayout.NORTH);
  106. }
  107.  
  108. public PanelTable getPanelTable() {
  109. return panelTable;
  110. }
  111.  
  112. public void setPanelTable(PanelTable panelTable) {
  113. this.panelTable = panelTable;
  114. }
  115.  
  116. void run() {
  117. Thread th = new Thread(new Runnable() {
  118. public void run() {
  119. int count = 0;
  120. while (btnStart.isSelected()) {
  121. DateFormat formatter = new SimpleDateFormat("HH:mm:ss");
  122. Date now = new Date();
  123. String time = formatter.format(now);
  124. panelTable.getModel().addRow(String.valueOf(count), "currency",
  125. "number", "target", "bet", "+profit", time);
  126. panelTable2.getModel().addRow(String.valueOf(count), "currency",
  127. "number", "target", "bet", "-profit", time);
  128. try {
  129. Thread.sleep(300);
  130. } catch (InterruptedException e) {
  131. e.printStackTrace();
  132. }
  133. count++;
  134. }
  135. }
  136. });
  137. th.start();
  138. }
  139. }
  140.  
  141. package main;
  142.  
  143. import java.awt.Font;
  144. import javax.swing.JPanel;
  145. import javax.swing.JScrollPane;
  146. import javax.swing.JTable;
  147. import javax.swing.ScrollPaneConstants;
  148. import java.awt.BorderLayout;
  149.  
  150. public class PanelTable extends JPanel {
  151.  
  152. private static final long serialVersionUID = 1L;
  153. private static JTable table;
  154. private MyTableModel model;
  155.  
  156. public PanelTable() {
  157. model = new MyTableModel();
  158. table = new JTable(model);
  159. table.setDefaultRenderer(String.class, new RowRender());
  160. table.setFont(new Font("Tahoma", Font.PLAIN, 14));
  161. table.getTableHeader().setFont(new Font("Tahoma", Font.PLAIN, 14));
  162. table.setRowHeight(20);
  163. table.setPreferredScrollableViewportSize(table.getPreferredSize());
  164. table.setFillsViewportHeight(true);
  165. table.setShowGrid(false);
  166. table.setRowSelectionAllowed(false);
  167. table.setColumnSelectionAllowed(false);
  168. table.getTableHeader().setReorderingAllowed(false);
  169.  
  170. JScrollPane scrollPane = new JScrollPane(table);
  171. scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
  172. scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
  173. setLayout(new BorderLayout(0, 0));
  174. add(scrollPane);
  175. }
  176.  
  177. JTable getTable() {
  178. return table;
  179. }
  180.  
  181. MyTableModel getModel(){
  182. return model;
  183. }
  184. }
  185.  
  186. package main;
  187.  
  188. public class LastBet {
  189.  
  190. private String betId;
  191. private String coin;
  192. private String secret;
  193. private String target;
  194. private String size;
  195. private String profit;
  196. private String time;
  197.  
  198. public LastBet(String betId, String coin, String secret, String target, String size, String profit, String time) {
  199. this.setBetId(betId);
  200. this.setCoin(coin);
  201. this.setSecret(secret);
  202. this.setTarget(target);
  203. this.setSize(size);
  204. this.setProfit(profit);
  205. this.setTime(time);
  206. }
  207.  
  208. public void setBetId(String betId) {
  209. this.betId = betId;
  210. }
  211.  
  212. public String getBetId() {
  213. return betId;
  214. }
  215.  
  216. public void setCoin(String coin) {
  217. this.coin = coin;
  218. }
  219.  
  220. public String getCoin() {
  221. return coin;
  222. }
  223.  
  224. public void setSecret(String secret) {
  225. this.secret = secret;
  226. }
  227.  
  228. public String getSecret() {
  229. return secret;
  230. }
  231.  
  232. public void setTarget(String target) {
  233. this.target = target;
  234. }
  235.  
  236. public String getTarget() {
  237. return target;
  238. }
  239.  
  240. public void setSize(String size) {
  241. this.size = size;
  242. }
  243.  
  244. public String getSize() {
  245. return size;
  246. }
  247.  
  248. public void setProfit(String profit) {
  249. this.profit = profit;
  250. }
  251.  
  252. public String getProfit() {
  253. return profit;
  254. }
  255.  
  256. public String getTime(){
  257. return time;
  258. }
  259.  
  260. public void setTime(String time){
  261. this.time = time;
  262. }
  263. }
  264.  
  265. package main;
  266.  
  267. import java.util.LinkedList;
  268. import javax.swing.table.AbstractTableModel;
  269.  
  270. public class MyTableModel extends AbstractTableModel {
  271.  
  272. private static final long serialVersionUID = 1L;
  273. private LinkedList<LastBet> rows;
  274.  
  275. public MyTableModel() {
  276. this.rows = new LinkedList<>();
  277. }
  278.  
  279. @Override
  280. public String getColumnName(int columnIndex) {
  281. switch (columnIndex) {
  282. case 0:
  283. return "Bet Id";
  284. case 1:
  285. return "Coin";
  286. case 2:
  287. return "Number";
  288. case 3:
  289. return "Target";
  290. case 4:
  291. return "Size";
  292. case 5:
  293. return "Profit";
  294. case 6:
  295. return "Time";
  296. }
  297. return "";
  298. }
  299.  
  300. @Override
  301. public int getColumnCount() {
  302. return 7;
  303. }
  304.  
  305. @Override
  306. public int getRowCount() {
  307. return rows.size();
  308. }
  309.  
  310. @Override
  311. public Object getValueAt(int rowIndex, int columnIndex) {
  312. LastBet row = rows.get(rowIndex);
  313. switch (columnIndex) {
  314. case 0:
  315. return row.getBetId();
  316. case 1:
  317. return row.getCoin();
  318. case 2:
  319. return row.getSecret();
  320. case 3:
  321. return row.getTarget();
  322. case 4:
  323. return row.getSize();
  324. case 5:
  325. return row.getProfit();
  326. case 6:
  327. return row.getTime();
  328. }
  329. return "";
  330. }
  331.  
  332. @Override
  333. public Class<?> getColumnClass(int columnIndex) {
  334. return String.class;
  335. }
  336.  
  337. public void addRow(String BetId, String currency, String number, String target, String bet, String profit, String time){
  338. LastBet lastBet = new LastBet(BetId, currency, number, target, bet, profit, time);
  339. rows.addFirst(lastBet);
  340. while (rows.size() >= 101) {
  341. rows.removeLast();
  342. }
  343. fireTableRowsInserted(0, getRowCount());
  344. }
  345. }
  346.  
  347. package main;
  348.  
  349. import java.awt.Color;
  350. import java.awt.Component;
  351. import javax.swing.JTable;
  352. import javax.swing.SwingConstants;
  353. import javax.swing.table.DefaultTableCellRenderer;
  354.  
  355. public class RowRender extends DefaultTableCellRenderer {
  356. private static final long serialVersionUID = 1L;
  357.  
  358. public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
  359. int row, int column) {
  360. Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
  361. setHorizontalAlignment(SwingConstants.CENTER);
  362. String cellvalue = table.getValueAt(row, table.getColumnModel().getColumnIndex("Profit")).toString();
  363. if (cellvalue.charAt(0) == '-') {
  364. cell.setForeground(new Color(255, 99, 71));
  365. } else if (cellvalue.charAt(0) == '+') {
  366. cell.setForeground(new Color(0, 100, 0));
  367. } else if (cellvalue.charAt(0) == '#') {
  368. cell.setForeground(Color.BLACK);
  369. } else {
  370. cell.setForeground(Color.BLUE);
  371. }
  372. return cell;
  373. }
  374. }
Add Comment
Please, Sign In to add comment