Switching tabs animation optimization

This commit is contained in:
huangyuhui 2017-02-11 22:00:07 +08:00
parent a11ca8b720
commit b415a2c2fa
3 changed files with 147 additions and 138 deletions

View File

@ -35,10 +35,6 @@
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="btnTestGame" min="-2" max="-2" attributes="0"/> <Component id="btnTestGame" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0">
<Component id="lblUsesGlobal" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
@ -56,9 +52,7 @@
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<Component id="pnlTop" min="-2" max="-2" attributes="0"/> <Component id="pnlTop" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="lblUsesGlobal" min="-2" max="-2" attributes="0"/> <Component id="tabVersionEdit" pref="309" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tabVersionEdit" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="btnTestGame" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="btnTestGame" alignment="3" min="-2" max="-2" attributes="0"/>
@ -69,7 +63,7 @@
</Group> </Group>
<Group type="103" rootIndex="1" groupAlignment="0" attributes="0"> <Group type="103" rootIndex="1" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0"> <Group type="102" alignment="1" attributes="0">
<EmptySpace pref="421" max="32767" attributes="0"/> <EmptySpace pref="400" max="32767" attributes="0"/>
<Component id="btnIncludeMinecraft" min="-2" max="-2" attributes="0"/> <Component id="btnIncludeMinecraft" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
@ -91,6 +85,9 @@
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/> <Layout class="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout"/>
<SubComponents> <SubComponents>
<Container class="javax.swing.JPanel" name="pnlSettings"> <Container class="javax.swing.JPanel" name="pnlSettings">
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new Page()"/>
</AuxValues>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="&lt;settings&gt;"> <JTabbedPaneConstraints tabName="&lt;settings&gt;">
@ -105,63 +102,62 @@
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Component id="lblJavaDir" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Component id="lblMaxMemory" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblJavaDir" min="-2" max="-2" attributes="0"/> <Component id="lblGameDir" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblMaxMemory" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="lblRunDirectory" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblGameDir" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="lblLauncherVisibility" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblRunDirectory" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="lblDimension" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblLauncherVisibility" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lblDimension" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="cboLauncherVisibility" alignment="1" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="txtWidth" min="-2" pref="100" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lblDimensionX" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="txtHeight" min="-2" pref="100" max="-2" attributes="0"/>
<EmptySpace pref="63" max="32767" attributes="0"/>
<Component id="chkFullscreen" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="txtMaxMemory" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lblMaxMemorySize" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="txtGameDir" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btnChoosingGameDir" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="cboJava" min="-2" pref="100" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="txtJavaDir" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btnChoosingJavaDir" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="cboRunDirectory" alignment="0" max="32767" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="btnDownloadAllAssets" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="btnCleanGame" min="-2" max="-2" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/> <EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="cboLauncherVisibility" alignment="1" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="txtWidth" min="-2" pref="100" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lblDimensionX" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="txtHeight" min="-2" pref="100" max="-2" attributes="0"/>
<EmptySpace pref="88" max="32767" attributes="0"/>
<Component id="chkFullscreen" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="txtMaxMemory" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lblMaxMemorySize" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="txtGameDir" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btnChoosingGameDir" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<Component id="cboJava" min="-2" pref="100" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="txtJavaDir" max="32767" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="btnChoosingJavaDir" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="cboRunDirectory" alignment="0" max="32767" attributes="0"/>
</Group>
</Group>
<Group type="102" alignment="0" attributes="0">
<Component id="btnDownloadAllAssets" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="btnCleanGame" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" attributes="0">
<Component id="lblUsesGlobal" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
<DimensionLayout dim="1"> <DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/> <Component id="lblUsesGlobal" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="txtGameDir" alignment="3" min="-2" pref="26" max="-2" attributes="0"/> <Component id="txtGameDir" alignment="3" min="-2" pref="26" max="-2" attributes="0"/>
<Component id="lblGameDir" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lblGameDir" alignment="3" min="-2" max="-2" attributes="0"/>
@ -198,7 +194,7 @@
<Component id="lblDimension" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="lblDimension" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="txtWidth" alignment="3" min="-2" pref="26" max="-2" attributes="0"/> <Component id="txtWidth" alignment="3" min="-2" pref="26" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace pref="60" max="32767" attributes="0"/> <EmptySpace pref="39" max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="btnDownloadAllAssets" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="btnDownloadAllAssets" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="btnCleanGame" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="btnCleanGame" alignment="3" min="-2" max="-2" attributes="0"/>
@ -372,9 +368,23 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCleanGameActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnCleanGameActionPerformed"/>
</Events> </Events>
</Component> </Component>
<Component class="javax.swing.JLabel" name="lblUsesGlobal">
<Properties>
<Property name="text" type="java.lang.String" value="jLabel1"/>
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
<Color id="&#x624b;&#x578b;&#x5149;&#x6807;"/>
</Property>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lblUsesGlobalMouseClicked"/>
</Events>
</Component>
</SubComponents> </SubComponents>
</Container> </Container>
<Container class="javax.swing.JPanel" name="pnlAdvancedSettings"> <Container class="javax.swing.JPanel" name="pnlAdvancedSettings">
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new Page()"/>
</AuxValues>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="&lt;advancedsettings&gt;"> <JTabbedPaneConstraints tabName="&lt;advancedsettings&gt;">
@ -566,6 +576,9 @@
</SubComponents> </SubComponents>
</Container> </Container>
<Container class="javax.swing.JPanel" name="pnlModManagement"> <Container class="javax.swing.JPanel" name="pnlModManagement">
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new Page()"/>
</AuxValues>
<Constraints> <Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription"> <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout" value="org.netbeans.modules.form.compat2.layouts.support.JTabbedPaneSupportLayout$JTabbedPaneConstraintsDescription">
<JTabbedPaneConstraints tabName="&lt;mods&gt;"> <JTabbedPaneConstraints tabName="&lt;mods&gt;">
@ -590,6 +603,9 @@
</Layout> </Layout>
<SubComponents> <SubComponents>
<Container class="javax.swing.JPanel" name="pnlModManagementContent"> <Container class="javax.swing.JPanel" name="pnlModManagementContent">
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new Page()"/>
</AuxValues>
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
@ -976,16 +992,5 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnIncludeMinecraftActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="btnIncludeMinecraftActionPerformed"/>
</Events> </Events>
</Component> </Component>
<Component class="javax.swing.JLabel" name="lblUsesGlobal">
<Properties>
<Property name="text" type="java.lang.String" value="jLabel1"/>
<Property name="cursor" type="java.awt.Cursor" editor="org.netbeans.modules.form.editors2.CursorEditor">
<Color id="&#x624b;&#x578b;&#x5149;&#x6807;"/>
</Property>
</Properties>
<Events>
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lblUsesGlobalMouseClicked"/>
</Events>
</Component>
</SubComponents> </SubComponents>
</Form> </Form>

View File

@ -261,7 +261,7 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
tabVersionEdit = new NewTabPane(); tabVersionEdit = new NewTabPane();
((NewTabPane)tabVersionEdit).initializing = true; ((NewTabPane)tabVersionEdit).initializing = true;
pnlSettings = new javax.swing.JPanel(); pnlSettings = new Page();
lblGameDir = new javax.swing.JLabel(); lblGameDir = new javax.swing.JLabel();
txtGameDir = new javax.swing.JTextField(); txtGameDir = new javax.swing.JTextField();
lblDimension = new javax.swing.JLabel(); lblDimension = new javax.swing.JLabel();
@ -283,7 +283,8 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
cboJava = new javax.swing.JComboBox(); cboJava = new javax.swing.JComboBox();
btnChoosingGameDir = new javax.swing.JButton(); btnChoosingGameDir = new javax.swing.JButton();
btnCleanGame = new javax.swing.JButton(); btnCleanGame = new javax.swing.JButton();
pnlAdvancedSettings = new javax.swing.JPanel(); lblUsesGlobal = new javax.swing.JLabel();
pnlAdvancedSettings = new Page();
lblJavaArgs = new javax.swing.JLabel(); lblJavaArgs = new javax.swing.JLabel();
txtJavaArgs = new javax.swing.JTextField(); txtJavaArgs = new javax.swing.JTextField();
txtMinecraftArgs = new javax.swing.JTextField(); txtMinecraftArgs = new javax.swing.JTextField();
@ -298,8 +299,8 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
lblPrecalledCommand1 = new javax.swing.JLabel(); lblPrecalledCommand1 = new javax.swing.JLabel();
txtWrapperLauncher = new javax.swing.JTextField(); txtWrapperLauncher = new javax.swing.JTextField();
chkDontCheckGame = new javax.swing.JCheckBox(); chkDontCheckGame = new javax.swing.JCheckBox();
pnlModManagement = new javax.swing.JPanel(); pnlModManagement = new Page();
pnlModManagementContent = new javax.swing.JPanel(); pnlModManagementContent = new Page();
jScrollPane1 = new javax.swing.JScrollPane(); jScrollPane1 = new javax.swing.JScrollPane();
lstExternalMods = new javax.swing.JTable(); lstExternalMods = new javax.swing.JTable();
btnAddMod = new javax.swing.JButton(); btnAddMod = new javax.swing.JButton();
@ -324,7 +325,6 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
btnShowLog = new javax.swing.JButton(); btnShowLog = new javax.swing.JButton();
btnMakeLaunchScript = new javax.swing.JButton(); btnMakeLaunchScript = new javax.swing.JButton();
btnIncludeMinecraft = new javax.swing.JButton(); btnIncludeMinecraft = new javax.swing.JButton();
lblUsesGlobal = new javax.swing.JLabel();
setBackground(new java.awt.Color(255, 255, 255)); setBackground(new java.awt.Color(255, 255, 255));
setOpaque(false); setOpaque(false);
@ -434,57 +434,65 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
} }
}); });
lblUsesGlobal.setText("jLabel1");
lblUsesGlobal.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
lblUsesGlobal.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
lblUsesGlobalMouseClicked(evt);
}
});
javax.swing.GroupLayout pnlSettingsLayout = new javax.swing.GroupLayout(pnlSettings); javax.swing.GroupLayout pnlSettingsLayout = new javax.swing.GroupLayout(pnlSettings);
pnlSettings.setLayout(pnlSettingsLayout); pnlSettings.setLayout(pnlSettingsLayout);
pnlSettingsLayout.setHorizontalGroup( pnlSettingsLayout.setHorizontalGroup(
pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlSettingsLayout.createSequentialGroup() .addGroup(pnlSettingsLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblJavaDir)
.addComponent(lblMaxMemory)
.addComponent(lblGameDir)
.addComponent(lblRunDirectory)
.addComponent(lblLauncherVisibility)
.addComponent(lblDimension))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(cboLauncherVisibility, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(pnlSettingsLayout.createSequentialGroup() .addGroup(pnlSettingsLayout.createSequentialGroup()
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(txtWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblJavaDir)
.addComponent(lblMaxMemory)
.addComponent(lblGameDir)
.addComponent(lblRunDirectory)
.addComponent(lblLauncherVisibility)
.addComponent(lblDimension))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(lblDimensionX)
.addComponent(cboLauncherVisibility, javax.swing.GroupLayout.Alignment.TRAILING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlSettingsLayout.createSequentialGroup() .addComponent(txtHeight, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 88, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chkFullscreen))
.addComponent(lblDimensionX) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSettingsLayout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtMaxMemory)
.addComponent(txtHeight, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 63, Short.MAX_VALUE) .addComponent(lblMaxMemorySize))
.addComponent(chkFullscreen)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSettingsLayout.createSequentialGroup()
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSettingsLayout.createSequentialGroup() .addComponent(txtGameDir)
.addComponent(txtMaxMemory) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnChoosingGameDir))
.addComponent(lblMaxMemorySize)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSettingsLayout.createSequentialGroup()
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSettingsLayout.createSequentialGroup() .addComponent(cboJava, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(txtGameDir) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtJavaDir)
.addComponent(btnChoosingGameDir)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnlSettingsLayout.createSequentialGroup() .addComponent(btnChoosingJavaDir))
.addComponent(cboJava, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cboRunDirectory, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(pnlSettingsLayout.createSequentialGroup()
.addComponent(txtJavaDir) .addComponent(btnDownloadAllAssets)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnChoosingJavaDir)) .addComponent(btnCleanGame))
.addComponent(cboRunDirectory, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addGroup(pnlSettingsLayout.createSequentialGroup()
.addGroup(pnlSettingsLayout.createSequentialGroup() .addComponent(lblUsesGlobal)
.addComponent(btnDownloadAllAssets) .addGap(0, 0, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnCleanGame)))
.addGap(0, 0, 0))
); );
pnlSettingsLayout.setVerticalGroup( pnlSettingsLayout.setVerticalGroup(
pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnlSettingsLayout.createSequentialGroup() .addGroup(pnlSettingsLayout.createSequentialGroup()
.addGap(0, 0, 0) .addComponent(lblUsesGlobal)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(txtGameDir, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtGameDir, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblGameDir) .addComponent(lblGameDir)
@ -515,7 +523,7 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
.addComponent(lblDimensionX, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(lblDimensionX, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblDimension) .addComponent(lblDimension)
.addComponent(txtWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(txtWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 60, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 39, Short.MAX_VALUE)
.addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(pnlSettingsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnDownloadAllAssets) .addComponent(btnDownloadAllAssets)
.addComponent(btnCleanGame)) .addComponent(btnCleanGame))
@ -907,14 +915,6 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
} }
}); });
lblUsesGlobal.setText("jLabel1");
lblUsesGlobal.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
lblUsesGlobal.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
lblUsesGlobalMouseClicked(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout); this.setLayout(layout);
layout.setHorizontalGroup( layout.setHorizontalGroup(
@ -930,10 +930,7 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnShowLog) .addComponent(btnShowLog)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnTestGame)) .addComponent(btnTestGame)))
.addGroup(layout.createSequentialGroup()
.addComponent(lblUsesGlobal)
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap()) .addContainerGap())
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
@ -946,9 +943,7 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addComponent(pnlTop, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(pnlTop, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblUsesGlobal) .addComponent(tabVersionEdit, javax.swing.GroupLayout.DEFAULT_SIZE, 309, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tabVersionEdit)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnTestGame) .addComponent(btnTestGame)
@ -957,7 +952,7 @@ public final class GameSettingsPanel extends RepaintPage implements DropTargetLi
.addContainerGap()) .addContainerGap())
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(421, Short.MAX_VALUE) .addContainerGap(400, Short.MAX_VALUE)
.addComponent(btnIncludeMinecraft) .addComponent(btnIncludeMinecraft)
.addContainerGap())) .addContainerGap()))
); );

View File

@ -20,6 +20,7 @@ package org.jackhuang.hellominecraft.launcher.ui;
import java.awt.AlphaComposite; import java.awt.AlphaComposite;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.Timer; import javax.swing.Timer;
@ -80,6 +81,8 @@ public class Page extends JPanel implements Selectable {
}); });
} }
BufferedImage cache = null;
@Override @Override
public void paint(Graphics g) { public void paint(Graphics g) {
if (!(g instanceof Graphics2D)) { if (!(g instanceof Graphics2D)) {
@ -91,18 +94,24 @@ public class Page extends JPanel implements Selectable {
super.paint(g); super.paint(g);
return; return;
} }
if (offsetX == 0) {
cache = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = cache.createGraphics();
if (isOpaque()) {
g2d.setColor(getBackground());
g2d.fillRect(0, 0, getWidth(), getHeight());
}
super.paint(g2d);
g2d.dispose();
}
if (pgs > 1) if (pgs > 1)
pgs = 1; pgs = 1;
if (pgs < 0) if (pgs < 0)
pgs = 0; pgs = 0;
Graphics2D g2 = (Graphics2D) g; Graphics2D gg = (Graphics2D) g;
if (isOpaque()) { gg.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, (float) (1 - pgs)));
g.setColor(getBackground()); g.drawImage(cache, (int) (pgs * 50), 0, this);
g.fillRect(0, 0, getWidth(), getHeight());
} else
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, (float) (1 - pgs)));
g.translate((int) (pgs * 50), 0);
super.paint(g);
} }
double offsetX = ANIMATION_LENGTH; double offsetX = ANIMATION_LENGTH;