Update UI to use BorderLayout, fixes resizeable issues

This commit is contained in:
Kronos
2017-04-12 17:42:58 -04:00
committed by Adam
parent f324a8357d
commit 3917307789
3 changed files with 22 additions and 13 deletions

View File

@@ -78,6 +78,7 @@ final class ClientPanel extends JPanel implements ComponentListener
@Override @Override
public void componentResized(ComponentEvent e) public void componentResized(ComponentEvent e)
{ {
rs.setLocation(0, 0);
rs.setSize(this.getSize()); rs.setSize(this.getSize());
this.setPreferredSize(this.getSize()); this.setPreferredSize(this.getSize());
rs.setPreferredSize(this.getPreferredSize()); rs.setPreferredSize(this.getPreferredSize());

View File

@@ -24,7 +24,8 @@
*/ */
package net.runelite.client.ui; package net.runelite.client.ui;
import java.awt.FlowLayout; import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.WindowAdapter; import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import java.awt.event.WindowEvent;
import javax.swing.JFrame; import javax.swing.JFrame;
@@ -36,7 +37,11 @@ import javax.swing.UnsupportedLookAndFeelException;
public final class ClientUI extends JFrame public final class ClientUI extends JFrame
{ {
private static final int COLLAPSED_WIDTH = ClientPanel.PANEL_WIDTH + NavigationPanel.PANEL_WIDTH;
private static final int EXPANDED_WIDTH = COLLAPSED_WIDTH + PluginPanel.PANEL_WIDTH;
private JPanel container; private JPanel container;
private JPanel navContainer;
private ClientPanel panel; private ClientPanel panel;
private NavigationPanel navigationPanel; private NavigationPanel navigationPanel;
private PluginPanel pluginPanel; private PluginPanel pluginPanel;
@@ -75,13 +80,17 @@ public final class ClientUI extends JFrame
} }
container = new JPanel(); container = new JPanel();
container.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); container.setLayout(new BorderLayout(0, 0));
panel = new ClientPanel(); panel = new ClientPanel();
container.add(panel); container.add(panel, BorderLayout.CENTER);
navContainer = new JPanel();
navContainer.setLayout(new BorderLayout(0, 0));
container.add(navContainer, BorderLayout.EAST);
navigationPanel = new NavigationPanel(); navigationPanel = new NavigationPanel();
container.add(navigationPanel); navContainer.add(navigationPanel, BorderLayout.EAST);
add(container); add(container);
} }
@@ -90,18 +99,17 @@ public final class ClientUI extends JFrame
{ {
if (!expanded) if (!expanded)
{ {
container.add(pluginPanel, null, 1); navContainer.add(pluginPanel, BorderLayout.WEST);
navContainer.revalidate();
container.revalidate(); this.setMinimumSize(new Dimension(EXPANDED_WIDTH, ClientPanel.PANEL_HEIGHT));
this.setSize(this.getWidth() + PluginPanel.PANEL_WIDTH, this.getHeight());
expanded = true; expanded = true;
} }
else else
{ {
container.remove(1); navContainer.remove(1);
container.revalidate(); navContainer.revalidate();
this.setSize(this.getWidth() - PluginPanel.PANEL_WIDTH, this.getHeight()); this.setMinimumSize(new Dimension(COLLAPSED_WIDTH, ClientPanel.PANEL_HEIGHT));
this.setSize(COLLAPSED_WIDTH, this.getHeight());
expanded = false; expanded = false;
} }
} }

View File

@@ -35,7 +35,7 @@ public class NavigationPanel extends JPanel
{ {
private static final Logger logger = LoggerFactory.getLogger(NavigationPanel.class); private static final Logger logger = LoggerFactory.getLogger(NavigationPanel.class);
private static final int PANEL_WIDTH = 20, PANEL_HEIGHT = 503; public static final int PANEL_WIDTH = 24, PANEL_HEIGHT = 503;
private final List<NavigationButton> buttons = new ArrayList<>(); private final List<NavigationButton> buttons = new ArrayList<>();