librejack

Blackjack clone written in java
git clone https://github.com/michaelneuper/librejack.git
README | Files | Log | Refs | LICENSE

commit 97ae19cd7027be8a7aaed942c059384e109c6327
parent be2853a9e4e69dd1b39855bc87bec39f0e9da244
Author: Michael Neuper <michael@michaelneuper.com>
Date:   Fri, 12 May 2023 19:40:41 +0200

Add StatisticsChart to StatisticsUI

Diffstat:
Msrc/view/StatisticsUI.form | 98++++++++++++++++++++++++++++++++++++-------------------------------------------
Msrc/view/StatisticsUI.java | 117++++++++++++++++++++++++++++++++++++-------------------------------------------
2 files changed, 97 insertions(+), 118 deletions(-)

diff --git a/src/view/StatisticsUI.form b/src/view/StatisticsUI.form @@ -20,7 +20,7 @@ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/> <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/> <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/> - <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,1,-123,0,0,3,40"/> + <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,2,29,0,0,3,-40"/> </AuxValues> <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/> @@ -36,24 +36,24 @@ <DimensionLayout dim="0"> <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="280" max="-2" attributes="0"/> - <Component id="jLabel1" min="-2" max="-2" attributes="0"/> - <EmptySpace pref="325" max="32767" attributes="0"/> + <EmptySpace min="-2" pref="349" max="-2" attributes="0"/> + <Component id="jLabelStatistics" min="-2" max="-2" attributes="0"/> + <EmptySpace pref="432" max="32767" attributes="0"/> </Group> </Group> </DimensionLayout> <DimensionLayout dim="1"> <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="17" max="-2" attributes="0"/> - <Component id="jLabel1" min="-2" max="-2" attributes="0"/> - <EmptySpace pref="21" max="32767" attributes="0"/> + <EmptySpace min="-2" pref="16" max="-2" attributes="0"/> + <Component id="jLabelStatistics" min="-2" max="-2" attributes="0"/> + <EmptySpace pref="22" max="32767" attributes="0"/> </Group> </Group> </DimensionLayout> </Layout> <SubComponents> - <Component class="javax.swing.JLabel" name="jLabel1"> + <Component class="javax.swing.JLabel" name="jLabelStatistics"> <Properties> <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Font name="Segoe UI" size="48" style="1"/> @@ -63,7 +63,7 @@ </Component> </SubComponents> </Container> - <Container class="javax.swing.JPanel" name="jPanel1"> + <Container class="javax.swing.JPanel" name="jPanelCenter"> <Constraints> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout$BorderConstraintsDescription"> <BorderConstraints direction="Center"/> @@ -74,44 +74,53 @@ <DimensionLayout dim="0"> <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> - <Component id="jPanelStatisticsText" min="-2" max="-2" attributes="0"/> + <Component id="jPanelStatisticsText" min="-2" pref="286" max="-2" attributes="0"/> + <EmptySpace type="unrelated" max="-2" attributes="0"/> + <Component id="statisticsChart1" min="-2" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/> - <Component id="jPanelStatisticsChart" min="-2" max="-2" attributes="0"/> </Group> </Group> </DimensionLayout> <DimensionLayout dim="1"> <Group type="103" groupAlignment="0" attributes="0"> - <Component id="jPanelStatisticsChart" max="32767" attributes="0"/> <Component id="jPanelStatisticsText" alignment="1" max="32767" attributes="0"/> + <Group type="102" alignment="1" attributes="0"> + <EmptySpace pref="13" max="32767" attributes="0"/> + <Component id="statisticsChart1" min="-2" max="-2" attributes="0"/> + <EmptySpace max="-2" attributes="0"/> + </Group> </Group> </DimensionLayout> </Layout> <SubComponents> + <Component class="view.StatisticsChart" name="statisticsChart1"> + </Component> <Container class="javax.swing.JPanel" name="jPanelStatisticsText"> <Layout> <DimensionLayout dim="0"> <Group type="103" groupAlignment="0" attributes="0"> - <Group type="102" alignment="1" attributes="0"> - <EmptySpace min="-2" pref="69" max="-2" attributes="0"/> + <Group type="102" attributes="0"> + <EmptySpace min="-2" pref="40" max="-2" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0"> <Component id="jLabelPushes" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="jLabelLosses" alignment="0" min="-2" max="-2" attributes="0"/> - </Group> - <EmptySpace pref="40" max="32767" attributes="0"/> - <Group type="103" groupAlignment="0" max="-2" attributes="0"> - <Component id="jLabelWinsAmount" min="-2" pref="136" max="-2" attributes="0"/> - <Component id="jLabelLossesAmount" pref="137" max="32767" attributes="0"/> - <Component id="jLabelPushesAmount" alignment="0" max="32767" attributes="0"/> - </Group> - <EmptySpace min="-2" pref="86" max="-2" attributes="0"/> - </Group> - <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="71" max="-2" attributes="0"/> <Component id="jLabelWins" min="-2" max="-2" attributes="0"/> - <EmptySpace pref="261" max="32767" attributes="0"/> + </Group> + <Group type="103" groupAlignment="0" attributes="0"> + <Group type="102" attributes="0"> + <EmptySpace max="32767" attributes="0"/> + <Group type="103" groupAlignment="0" attributes="0"> + <Component id="jLabelWinsAmount" min="-2" pref="136" max="-2" attributes="0"/> + <Component id="jLabelPushesAmount" alignment="0" min="-2" pref="137" max="-2" attributes="0"/> + </Group> + <EmptySpace min="-2" pref="115" max="-2" attributes="0"/> + </Group> + <Group type="102" alignment="0" attributes="0"> + <EmptySpace max="-2" attributes="0"/> + <Component id="jLabelLossesAmount" min="-2" pref="137" max="-2" attributes="0"/> + <EmptySpace max="32767" attributes="0"/> + </Group> </Group> </Group> </Group> @@ -119,26 +128,22 @@ <DimensionLayout dim="1"> <Group type="103" groupAlignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="38" max="-2" attributes="0"/> - <Component id="jLabelWinsAmount" min="-2" pref="43" max="-2" attributes="0"/> + <EmptySpace min="-2" pref="94" max="-2" attributes="0"/> + <Group type="103" groupAlignment="3" attributes="0"> + <Component id="jLabelWinsAmount" alignment="3" min="-2" pref="43" max="-2" attributes="0"/> + <Component id="jLabelWins" alignment="3" min="-2" max="-2" attributes="0"/> + </Group> <EmptySpace min="-2" pref="27" max="-2" attributes="0"/> <Group type="103" groupAlignment="3" attributes="0"> <Component id="jLabelLosses" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="jLabelPushesAmount" alignment="3" min="-2" pref="43" max="-2" attributes="0"/> + <Component id="jLabelLossesAmount" alignment="3" min="-2" pref="43" max="-2" attributes="0"/> </Group> <EmptySpace min="-2" pref="26" max="-2" attributes="0"/> <Group type="103" groupAlignment="3" attributes="0"> <Component id="jLabelPushes" alignment="3" min="-2" max="-2" attributes="0"/> - <Component id="jLabelLossesAmount" alignment="3" min="-2" pref="43" max="-2" attributes="0"/> - </Group> - <EmptySpace pref="67" max="32767" attributes="0"/> - </Group> - <Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> - <Group type="102" alignment="0" attributes="0"> - <EmptySpace min="-2" pref="43" max="-2" attributes="0"/> - <Component id="jLabelWins" min="-2" max="-2" attributes="0"/> - <EmptySpace pref="212" max="32767" attributes="0"/> + <Component id="jLabelPushesAmount" alignment="3" min="-2" pref="43" max="-2" attributes="0"/> </Group> + <EmptySpace max="32767" attributes="0"/> </Group> </Group> </DimensionLayout> @@ -200,21 +205,6 @@ </Component> </SubComponents> </Container> - <Container class="javax.swing.JPanel" name="jPanelStatisticsChart"> - - <Layout> - <DimensionLayout dim="0"> - <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="391" max="32767" attributes="0"/> - </Group> - </DimensionLayout> - <DimensionLayout dim="1"> - <Group type="103" groupAlignment="0" attributes="0"> - <EmptySpace min="0" pref="0" max="32767" attributes="0"/> - </Group> - </DimensionLayout> - </Layout> - </Container> </SubComponents> </Container> </SubComponents> diff --git a/src/view/StatisticsUI.java b/src/view/StatisticsUI.java @@ -2,8 +2,6 @@ package view; import com.formdev.flatlaf.FlatDarkLaf; import java.io.IOException; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import model.Statistics; @@ -20,7 +18,7 @@ import model.Statistics; * <a href="mailto:michael@michaelneuper.com">michael@michaelneuper.com</a> */ public class StatisticsUI extends javax.swing.JFrame { - + Statistics stats; /** @@ -45,8 +43,9 @@ public class StatisticsUI extends javax.swing.JFrame { private void initComponents() { jPanelNorth = new javax.swing.JPanel(); - jLabel1 = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); + jLabelStatistics = new javax.swing.JLabel(); + jPanelCenter = new javax.swing.JPanel(); + statisticsChart1 = new view.StatisticsChart(); jPanelStatisticsText = new javax.swing.JPanel(); jLabelLosses = new javax.swing.JLabel(); jLabelWins = new javax.swing.JLabel(); @@ -54,30 +53,29 @@ public class StatisticsUI extends javax.swing.JFrame { jLabelWinsAmount = new javax.swing.JLabel(); jLabelLossesAmount = new javax.swing.JLabel(); jLabelPushesAmount = new javax.swing.JLabel(); - jPanelStatisticsChart = new javax.swing.JPanel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Statistics"); setAlwaysOnTop(true); - jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 48)); // NOI18N - jLabel1.setText("Statistics"); + jLabelStatistics.setFont(new java.awt.Font("Segoe UI", 1, 48)); // NOI18N + jLabelStatistics.setText("Statistics"); javax.swing.GroupLayout jPanelNorthLayout = new javax.swing.GroupLayout(jPanelNorth); jPanelNorth.setLayout(jPanelNorthLayout); jPanelNorthLayout.setHorizontalGroup( jPanelNorthLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelNorthLayout.createSequentialGroup() - .addGap(280, 280, 280) - .addComponent(jLabel1) - .addContainerGap(325, Short.MAX_VALUE)) + .addGap(349, 349, 349) + .addComponent(jLabelStatistics) + .addContainerGap(432, Short.MAX_VALUE)) ); jPanelNorthLayout.setVerticalGroup( jPanelNorthLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelNorthLayout.createSequentialGroup() - .addGap(17, 17, 17) - .addComponent(jLabel1) - .addContainerGap(21, Short.MAX_VALUE)) + .addGap(16, 16, 16) + .addComponent(jLabelStatistics) + .addContainerGap(22, Short.MAX_VALUE)) ); getContentPane().add(jPanelNorth, java.awt.BorderLayout.NORTH); @@ -104,71 +102,62 @@ public class StatisticsUI extends javax.swing.JFrame { jPanelStatisticsText.setLayout(jPanelStatisticsTextLayout); jPanelStatisticsTextLayout.setHorizontalGroup( jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelStatisticsTextLayout.createSequentialGroup() - .addGap(69, 69, 69) + .addGroup(jPanelStatisticsTextLayout.createSequentialGroup() + .addGap(40, 40, 40) .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabelPushes) - .addComponent(jLabelLosses)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 40, Short.MAX_VALUE) - .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jLabelWinsAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabelLossesAmount, javax.swing.GroupLayout.DEFAULT_SIZE, 137, Short.MAX_VALUE) - .addComponent(jLabelPushesAmount, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGap(86, 86, 86)) - .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanelStatisticsTextLayout.createSequentialGroup() - .addGap(71, 71, 71) - .addComponent(jLabelWins) - .addContainerGap(261, Short.MAX_VALUE))) + .addComponent(jLabelLosses) + .addComponent(jLabelWins)) + .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanelStatisticsTextLayout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabelWinsAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabelPushesAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(115, 115, 115)) + .addGroup(jPanelStatisticsTextLayout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jLabelLossesAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) ); jPanelStatisticsTextLayout.setVerticalGroup( jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelStatisticsTextLayout.createSequentialGroup() - .addGap(38, 38, 38) - .addComponent(jLabelWinsAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(94, 94, 94) + .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabelWinsAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabelWins)) .addGap(27, 27, 27) .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelLosses) - .addComponent(jLabelPushesAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jLabelLossesAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(26, 26, 26) .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabelPushes) - .addComponent(jLabelLossesAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(67, Short.MAX_VALUE)) - .addGroup(jPanelStatisticsTextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanelStatisticsTextLayout.createSequentialGroup() - .addGap(43, 43, 43) - .addComponent(jLabelWins) - .addContainerGap(212, Short.MAX_VALUE))) - ); - - javax.swing.GroupLayout jPanelStatisticsChartLayout = new javax.swing.GroupLayout(jPanelStatisticsChart); - jPanelStatisticsChart.setLayout(jPanelStatisticsChartLayout); - jPanelStatisticsChartLayout.setHorizontalGroup( - jPanelStatisticsChartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 391, Short.MAX_VALUE) - ); - jPanelStatisticsChartLayout.setVerticalGroup( - jPanelStatisticsChartLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) + .addComponent(jLabelPushesAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); - jPanel1.setLayout(jPanel1Layout); - jPanel1Layout.setHorizontalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel1Layout.createSequentialGroup() - .addComponent(jPanelStatisticsText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanelStatisticsChart, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + javax.swing.GroupLayout jPanelCenterLayout = new javax.swing.GroupLayout(jPanelCenter); + jPanelCenter.setLayout(jPanelCenterLayout); + jPanelCenterLayout.setHorizontalGroup( + jPanelCenterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanelCenterLayout.createSequentialGroup() + .addComponent(jPanelStatisticsText, javax.swing.GroupLayout.PREFERRED_SIZE, 286, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(statisticsChart1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) ); - jPanel1Layout.setVerticalGroup( - jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanelStatisticsChart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + jPanelCenterLayout.setVerticalGroup( + jPanelCenterLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanelStatisticsText, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelCenterLayout.createSequentialGroup() + .addContainerGap(13, Short.MAX_VALUE) + .addComponent(statisticsChart1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) ); - getContentPane().add(jPanel1, java.awt.BorderLayout.CENTER); + getContentPane().add(jPanelCenter, java.awt.BorderLayout.CENTER); pack(); }// </editor-fold>//GEN-END:initComponents @@ -191,16 +180,16 @@ public class StatisticsUI extends javax.swing.JFrame { } // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabelLosses; private javax.swing.JLabel jLabelLossesAmount; private javax.swing.JLabel jLabelPushes; private javax.swing.JLabel jLabelPushesAmount; + private javax.swing.JLabel jLabelStatistics; private javax.swing.JLabel jLabelWins; private javax.swing.JLabel jLabelWinsAmount; - private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanelCenter; private javax.swing.JPanel jPanelNorth; - private javax.swing.JPanel jPanelStatisticsChart; private javax.swing.JPanel jPanelStatisticsText; + private view.StatisticsChart statisticsChart1; // End of variables declaration//GEN-END:variables }