Pārlūkot izejas kodu

Adding experience to ClassTab

Sam Jaffe 8 gadi atpakaļ
vecāks
revīzija
1a333c2a0e

+ 3 - 0
src/org/leumasjaffe/charsheet/model/DDCharacter.java

@@ -6,6 +6,7 @@ import java.util.Iterator;
 import java.util.Set;
 
 import org.leumasjaffe.charsheet.model.inventory.DDInventory;
+import org.leumasjaffe.charsheet.model.observable.IntValue;
 import org.leumasjaffe.charsheet.model.observable.ObjectValue;
 import org.leumasjaffe.charsheet.model.skill.DDSkills;
 
@@ -43,6 +44,8 @@ public class DDCharacter {
 	@NonNull String hair = "";
 	@NonNull String skin = "";
 	
+	@NonNull IntValue experience = new IntValue();
+	
 	@NonNull HitPoints health = new HitPoints();
 	
 	@NonNull Ability abilities = new Ability();

+ 60 - 3
src/org/leumasjaffe/charsheet/view/ClassTab.java

@@ -18,6 +18,7 @@ import javax.swing.JLabel;
 import java.awt.Component;
 import javax.swing.Box;
 import java.awt.Font;
+import java.awt.Dimension;
 
 @FieldDefaults(level=AccessLevel.PRIVATE, makeFinal=true)
 public class ClassTab extends JPanel {
@@ -27,6 +28,7 @@ public class ClassTab extends JPanel {
 	private static final long serialVersionUID = 1L;
 
 	String title;
+	private JTextField experienceField;
 	
 	public ClassTab(DDCharacter chara, DDCharacterClass model) {
 		this.title = model.getName();
@@ -39,6 +41,7 @@ public class ClassTab extends JPanel {
 		setLayout(gridBagLayout);
 		
 		JPanel header = new JPanel();
+		header.setPreferredSize(new Dimension(400, 20));
 		GridBagConstraints gbc_header = new GridBagConstraints();
 		gbc_header.insets = new Insets(0, 0, 5, 0);
 		gbc_header.fill = GridBagConstraints.BOTH;
@@ -46,9 +49,9 @@ public class ClassTab extends JPanel {
 		gbc_header.gridy = 0;
 		add(header, gbc_header);
 		GridBagLayout gbl_header = new GridBagLayout();
-		gbl_header.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0};
+		gbl_header.columnWidths = new int[]{0, 50, 0, 0, 50, 0, 0, 65, 0, 65, 0, 0};
 		gbl_header.rowHeights = new int[]{0, 0};
-		gbl_header.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE};
+		gbl_header.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
 		gbl_header.rowWeights = new double[]{0.0, Double.MIN_VALUE};
 		header.setLayout(gbl_header);
 		
@@ -62,7 +65,11 @@ public class ClassTab extends JPanel {
 		header.add(lblClass, gbc_lblClass);
 		
 		JTextField nameField = new JTextField();
+		nameField.setPreferredSize(new Dimension(50, 20));
+		nameField.setMaximumSize(new Dimension(50, 20));
+		nameField.setMinimumSize(new Dimension(50, 20));
 		GridBagConstraints gbc_nameField = new GridBagConstraints();
+		gbc_nameField.fill = GridBagConstraints.HORIZONTAL;
 		gbc_nameField.insets = new Insets(0, 0, 0, 5);
 		gbc_nameField.gridx = 1;
 		gbc_nameField.gridy = 0;
@@ -82,14 +89,18 @@ public class ClassTab extends JPanel {
 		JLabel lblLevel = new JLabel("Level:");
 		lblLevel.setFont(new Font("Tahoma", Font.BOLD, 14));
 		GridBagConstraints gbc_lblLevel = new GridBagConstraints();
+		gbc_lblLevel.fill = GridBagConstraints.HORIZONTAL;
 		gbc_lblLevel.insets = new Insets(0, 0, 0, 5);
-		gbc_lblLevel.anchor = GridBagConstraints.EAST;
 		gbc_lblLevel.gridx = 3;
 		gbc_lblLevel.gridy = 0;
 		header.add(lblLevel, gbc_lblLevel);
 		
 		JTextField levelField = new JTextField();
+		levelField.setPreferredSize(new Dimension(50, 20));
+		levelField.setMaximumSize(new Dimension(50, 20));
+		levelField.setMinimumSize(new Dimension(50, 20));
 		GridBagConstraints gbc_levelField = new GridBagConstraints();
+		gbc_levelField.fill = GridBagConstraints.HORIZONTAL;
 		gbc_levelField.insets = new Insets(0, 0, 0, 5);
 		gbc_levelField.gridx = 4;
 		gbc_levelField.gridy = 0;
@@ -98,6 +109,52 @@ public class ClassTab extends JPanel {
 		levelField.setColumns(10);
 		levelField.setText(StringHelper.toString(model.getLevel()));
 		
+		Component horizontalStrut_1 = Box.createHorizontalStrut(20);
+		GridBagConstraints gbc_horizontalStrut_1 = new GridBagConstraints();
+		gbc_horizontalStrut_1.insets = new Insets(0, 0, 0, 5);
+		gbc_horizontalStrut_1.gridx = 5;
+		gbc_horizontalStrut_1.gridy = 0;
+		header.add(horizontalStrut_1, gbc_horizontalStrut_1);
+		
+		JLabel lblExperience = new JLabel("Experience:");
+		lblExperience.setFont(new Font("Tahoma", Font.BOLD, 14));
+		GridBagConstraints gbc_lblExperience = new GridBagConstraints();
+		gbc_lblExperience.anchor = GridBagConstraints.EAST;
+		gbc_lblExperience.insets = new Insets(0, 0, 0, 5);
+		gbc_lblExperience.gridx = 6;
+		gbc_lblExperience.gridy = 0;
+		header.add(lblExperience, gbc_lblExperience);
+		
+		experienceField = new JTextField();
+		experienceField.setText(Integer.toString(chara.getExperience().value()));
+		experienceField.setEditable(false);
+		experienceField.setColumns(10);
+		GridBagConstraints gbc_experienceField = new GridBagConstraints();
+		gbc_experienceField.insets = new Insets(0, 0, 0, 5);
+		gbc_experienceField.fill = GridBagConstraints.HORIZONTAL;
+		gbc_experienceField.gridx = 7;
+		gbc_experienceField.gridy = 0;
+		header.add(experienceField, gbc_experienceField);
+		
+		JLabel label = new JLabel("/");
+		GridBagConstraints gbc_label = new GridBagConstraints();
+		gbc_label.anchor = GridBagConstraints.EAST;
+		gbc_label.insets = new Insets(0, 0, 0, 5);
+		gbc_label.gridx = 8;
+		gbc_label.gridy = 0;
+		header.add(label, gbc_label);
+		
+		JTextField nextLvlField = new JTextField();
+		nextLvlField.setText(Integer.toString(chara.getLevel() * (chara.getLevel() + 1) * 500));
+		nextLvlField.setEditable(false);
+		nextLvlField.setColumns(10);
+		GridBagConstraints gbc_nextLvlField = new GridBagConstraints();
+		gbc_nextLvlField.insets = new Insets(0, 0, 0, 5);
+		gbc_nextLvlField.fill = GridBagConstraints.HORIZONTAL;
+		gbc_nextLvlField.gridx = 9;
+		gbc_nextLvlField.gridy = 0;
+		header.add(nextLvlField, gbc_nextLvlField);
+		
 		JPanel levelBenefits = new JPanel();
 		GridBagConstraints gbc_levelBenefits = new GridBagConstraints();
 		gbc_levelBenefits.insets = new Insets(0, 0, 5, 0);