List of usage examples for javax.swing JScrollPane setBackground
@BeanProperty(preferred = true, visualUpdate = true, description = "The background color of the component.") public void setBackground(Color bg)
From source file:com.googlecode.sarasvati.visual.jung.JungVisualizer.java
@SuppressWarnings("serial") public static void main(String[] args) throws Exception { TestSetup.init();/*from w w w . j av a 2s.c om*/ Session session = TestSetup.openSession(); HibEngine engine = new HibEngine(session); JFrame frame = new JFrame("Workflow Visualizer"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setMinimumSize(new Dimension(800, 600)); JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); frame.getContentPane().add(splitPane); DefaultListModel listModel = new DefaultListModel(); for (Graph g : engine.getRepository().getGraphs()) { listModel.addElement(g); } ListCellRenderer cellRenderer = new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); Graph g = (Graph) value; setText(g.getName() + "." + g.getVersion() + " "); return this; } }; final JList graphList = new JList(listModel); graphList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); graphList.setCellRenderer(cellRenderer); JScrollPane listScrollPane = new JScrollPane(graphList); listScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); listScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); splitPane.add(listScrollPane); //TreeLayout<NodeRef, Arc> layout = new TreeLayout<NodeRef, Arc>(); DirectedSparseMultigraph<Node, Arc> graph = new DirectedSparseMultigraph<Node, Arc>(); //final SpringLayout2<HibNodeRef, HibArc> layout = new SpringLayout2<HibNodeRef, HibArc>(graph); //final KKLayout<HibNodeRef, HibArc> layout = new KKLayout<HibNodeRef, HibArc>(graph); final TreeLayout layout = new TreeLayout(graph); final BasicVisualizationServer<Node, Arc> vs = new BasicVisualizationServer<Node, Arc>(layout); //vs.getRenderContext().setVertexLabelTransformer( new NodeLabeller() ); //vs.getRenderContext().setEdgeLabelTransformer( new ArcLabeller() ); vs.getRenderContext().setVertexShapeTransformer(new NodeShapeTransformer()); vs.getRenderContext().setVertexFillPaintTransformer(new NodeColorTransformer()); vs.getRenderContext().setLabelOffset(5); vs.getRenderContext().setVertexIconTransformer(new Transformer<Node, Icon>() { @Override public Icon transform(Node node) { return "task".equals(node.getType()) ? new TaskIcon(node) : null; } }); Transformer<Arc, Paint> edgeColorTrans = new Transformer<Arc, Paint>() { private Color darkRed = new Color(128, 0, 0); @Override public Paint transform(Arc arc) { return "reject".equals(arc.getName()) ? darkRed : Color.black; } }; vs.getRenderContext().setEdgeDrawPaintTransformer(edgeColorTrans); vs.getRenderContext().setArrowDrawPaintTransformer(edgeColorTrans); final JScrollPane scrollPane = new JScrollPane(vs); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); splitPane.add(scrollPane); scrollPane.setBackground(Color.white); graphList.addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { if (e.getValueIsAdjusting()) { return; } final Graph g = (Graph) graphList.getSelectedValue(); if ((g == null && currentGraph == null) || (g != null && g.equals(currentGraph))) { return; } currentGraph = g; DirectedSparseMultigraph<Node, Arc> jungGraph = new DirectedSparseMultigraph<Node, Arc>(); for (Node ref : currentGraph.getNodes()) { jungGraph.addVertex(ref); } for (Arc arc : currentGraph.getArcs()) { jungGraph.addEdge(arc, arc.getStartNode(), arc.getEndNode()); } GraphTree graphTree = new GraphTree(g); layout.setGraph(jungGraph); layout.setInitializer(new NodeLocationTransformer(graphTree)); scrollPane.repaint(); } }); frame.setVisible(true); }
From source file:Main.java
/** * Creates a new <code>JScrollPane</code> object with the given properties. * * @param component The component of the scroll pane * @param bounds The dimension of the component * @param backgroundColor The color of the background * @param noBorder if true then the scroll pane is without border otherwise * the scroll pane will have also a border * @param visible if true then the scroll pane will be visible otherwise the * scroll pane will be invisible//from ww w . j av a 2s . co m * @return A <code>JScrollPane</code> object */ public static JScrollPane createJScrollPane(Component component, Rectangle bounds, Color backgroundColor, boolean noBorder, boolean visible) { JScrollPane pane = new JScrollPane(); if (bounds != null) { pane.setBounds(bounds); } pane.setBackground(backgroundColor); pane.setViewportView(component); if (noBorder) { pane.setBorder(null); } if (!visible) { pane.setVisible(false); } return pane; }
From source file:customprogressindicatordemo.WeatherData.java
public WeatherData() { setBackground(Color.WHITE);/*from w ww . j av a 2 s . co m*/ setLayout(new BorderLayout()); JLabel lbl = new JLabel("World-Wide Weather Data"); add(lbl, BorderLayout.NORTH); String[] columnNames = { "City", "Temperature" }; JTable table = new JTable(getData(), columnNames); table.setPreferredScrollableViewportSize(new Dimension(500, 70)); table.setFillsViewportHeight(true); //Create the scroll pane and add the table to it. JScrollPane scrollPane = new JScrollPane(table); scrollPane.setBackground(Color.WHITE); //Add the scroll pane to this panel. add(scrollPane, BorderLayout.SOUTH); }
From source file:integratedprogressdemo.WeatherData.java
private WeatherData(boolean displayProgress) { setBackground(Color.WHITE);/*from ww w . j a v a2s. c o m*/ setLayout(new BorderLayout()); JLabel lbl = new JLabel("World-Wide Weather Data"); lbl.setFont(new Font("Serif", Font.PLAIN, 18)); add(lbl, BorderLayout.PAGE_START); lbl = new JLabel("Weather information from over 50 cities"); add(lbl, BorderLayout.LINE_START); if (displayProgress) { progressPanel = new JPanel(); progressPanel.setBackground(Color.WHITE); progressPanel.setLayout(new BorderLayout(20, 20)); String lblText = "<html>Stuck in the mud? Make progress with...<br /><font color=red><em>JDK Documentation</em></font><br/></html>"; lbl = new JLabel(lblText); progressPanel.add(lbl, BorderLayout.NORTH); progressBar = new JProgressBar(0, 100); progressBar.setValue(0); progressBar.setStringPainted(true); progressPanel.add(progressBar, BorderLayout.SOUTH); add(progressPanel, BorderLayout.LINE_END); } String[] columnNames = { "City", "Temperature" }; JTable table = new JTable(getData(), columnNames); table.setPreferredScrollableViewportSize(new Dimension(500, 70)); table.setFillsViewportHeight(true); //Create the scroll pane and add the table to it. JScrollPane scrollPane = new JScrollPane(table); scrollPane.setBackground(Color.WHITE); //Add the scroll pane to this panel. add(scrollPane, BorderLayout.PAGE_END); }
From source file:de.codesourcery.threadwatcher.ui.StatisticsPanel.java
public StatisticsPanel(FileReader reader) { this.reader = reader; table.setDefaultRenderer(TableEntry.class, new CellRenderer()); table.addMouseMotionListener(mouseListener); table.setBackground(Color.WHITE); table.setFillsViewportHeight(true);//from w ww . j a v a2 s. c o m setLayout(new GridBagLayout()); GridBagConstraints cnstrs = new GridBagConstraints(); cnstrs.gridheight = GridBagConstraints.REMAINDER; cnstrs.gridwidth = GridBagConstraints.REMAINDER; cnstrs.fill = GridBagConstraints.BOTH; cnstrs.weightx = 1.0; cnstrs.weighty = 1.0; JScrollPane pane = new JScrollPane(table); pane.setBackground(Color.WHITE); add(pane, cnstrs); }
From source file:de.unidue.inf.is.ezdl.gframedl.components.AboutDialog.java
private JPanel getContent() { JPanel panel = new JPanel(new GridBagLayout()); JLabel iconLabel = new JLabel(new ImageIcon(Images.LOGO_EZDL_LARGE_SINGLE.getImage())); JTextArea licenseTextArea = new JTextArea(licenseText); licenseTextArea.setEditable(false);/* ww w . ja va2 s . c o m*/ licenseTextArea.setLineWrap(true); licenseTextArea.setWrapStyleWord(true); licenseTextArea.setOpaque(false); licenseTextArea.setBorder(BorderFactory.createEmptyBorder()); JScrollPane licenseScrollPane = new JScrollPane(licenseTextArea); JTable propertiesTable = new JTable(tableModel); propertiesTable.setBackground(Color.WHITE); propertiesTable.setShowGrid(false); JScrollPane propertiesScrollPane = new JScrollPane(propertiesTable); propertiesScrollPane.setBackground(Color.WHITE); propertiesScrollPane.getViewport().setBackground(Color.WHITE); JButton closeButton = new JButton(I18nSupport.getInstance().getLocString("ezdl.controls.close")); closeButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }); JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.addTab(I18nSupport.getInstance().getLocString("ezdl.licence"), licenseScrollPane); tabbedPane.addTab(I18nSupport.getInstance().getLocString("ezdl.properties"), propertiesScrollPane); tabbedPane.setBackground(Color.WHITE); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.insets = new Insets(0, 0, 0, 0); c.anchor = GridBagConstraints.CENTER; panel.add(iconLabel, c); c.gridx = 0; c.gridy = 1; c.weightx = 1; c.weighty = 1; c.anchor = GridBagConstraints.CENTER; c.fill = GridBagConstraints.BOTH; c.insets = new Insets(10, 20, 10, 20); panel.add(tabbedPane, c); c.gridy = 2; c.fill = GridBagConstraints.NONE; c.weighty = 0; c.insets = new Insets(0, 20, 10, 20); panel.add(closeButton, c); panel.setBackground(Color.WHITE); return panel; }
From source file:es.emergya.ui.plugins.LayerSelectionDialog.java
public LayerSelectionDialog(CustomMapView gmv) { super();//from w w w .ja v a 2 s. c om self = this; this.setTitle("Otras Capas"); actualizando = new JLabel(LogicConstants.getIcon("anim_actualizando")); this.setAlwaysOnTop(true); this.mv = gmv; this.layers = new ArrayList<LayerElement>(); try { setIconImage(((BasicWindow) GoClassLoader.getGoClassLoader().load(BasicWindow.class)).getIconImage()); } catch (Throwable e1) { LOG.error("Couldn't find icon image", e1); } JPanel base = new JPanel(); base.setPreferredSize(new Dimension(240, 150)); base.setBackground(Color.WHITE); base.setLayout(new BoxLayout(base, BoxLayout.Y_AXIS)); base.add(new JLabel(i18n.getString("map.layers.avaliable"))); list = new JPanel(); list.setLayout(new BoxLayout(list, BoxLayout.Y_AXIS)); list.add(actualizando); list.setBackground(Color.WHITE); // list.setPreferredSize(new Dimension(100, 100)); final JScrollPane scrollPane = new JScrollPane(list); scrollPane.setBackground(Color.WHITE); base.add(scrollPane); mv.addComponentListener(new ComponentAdapter() { @Override public void componentShown(ComponentEvent e) { } }); add(base); pack(); }
From source file:ac.openmicrolabs.view.gui.OMLLoggerView.java
private JPanel createContentPane(final TimeSeriesCollection t, final String graphTitle, final double graphTimeRange, final String[] signals) { btmPanel.remove(reportButton);//from w ww. ja va 2s . c o m chanLabel = new JLabel[signals.length]; int activeSignalCount = 0; for (int i = 0; i < signals.length; i++) { chanLabel[i] = new JLabel(h.format("label", (char) ((i / PIN_COUNT) + ASCII_OFFSET) + "-0x" + String.format("%02x", (i % PIN_COUNT) + SLAVE_BITS).toUpperCase())); chanLabel[i].setHorizontalAlignment(JLabel.CENTER); if (signals[i] != null) { activeSignalCount++; } else { chanLabel[i].setEnabled(false); } } typeLabel = new JLabel[activeSignalCount]; valLabel = new JLabel[activeSignalCount]; minLabel = new JLabel[activeSignalCount]; maxLabel = new JLabel[activeSignalCount]; avgLabel = new JLabel[activeSignalCount]; int index = 0; for (int i = 0; i < signals.length; i++) { if (signals[i] != null) { typeLabel[index] = new JLabel(h.format("body", signals[i])); typeLabel[index].setHorizontalAlignment(JLabel.CENTER); index++; } } for (int i = 0; i < activeSignalCount; i++) { valLabel[i] = new JLabel(); valLabel[i].setHorizontalAlignment(JLabel.CENTER); minLabel[i] = new JLabel(); minLabel[i].setHorizontalAlignment(JLabel.CENTER); maxLabel[i] = new JLabel(); maxLabel[i].setHorizontalAlignment(JLabel.CENTER); avgLabel[i] = new JLabel(); avgLabel[i].setHorizontalAlignment(JLabel.CENTER); } // Set up main panel. JPanel mainPanel = new JPanel(); mainPanel.setLayout(null); mainPanel.setBackground(Color.white); // Create graph. snsChart = ChartFactory.createTimeSeriesChart(graphTitle, GRAPH_X_LABEL, GRAPH_Y_LABEL, t, true, true, false); final XYPlot plot = snsChart.getXYPlot(); ValueAxis axis = plot.getDomainAxis(); axis.setAutoRange(true); axis.setFixedAutoRange(graphTimeRange); axis = plot.getRangeAxis(); axis.setRange(graphMinY, graphMaxY); ChartPanel snsChartPanel = new ChartPanel(snsChart); snsChartPanel.setPreferredSize(new Dimension(FRAME_WIDTH - PAD20, GRAPH_HEIGHT - PAD10)); // Set up graph panel. final JPanel graphPanel = new JPanel(); graphPanel.setSize(FRAME_WIDTH - PAD20, GRAPH_HEIGHT); graphPanel.setLocation(0, 0); graphPanel.setBackground(Color.white); graphPanel.add(snsChartPanel); // Set up results panel. final JPanel resultsPanel = createResultsPane(); // Set up scroll pane. final JScrollPane scrollPane = new JScrollPane(resultsPanel); scrollPane.setSize(FRAME_WIDTH - PAD20, FRAME_HEIGHT - BTM_HEIGHT - GRAPH_HEIGHT + PAD8); scrollPane.setLocation(PAD5, GRAPH_HEIGHT); scrollPane.setBackground(Color.white); scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER); // Set results panel size. resultsPanel.setPreferredSize(new Dimension(PAD40 + (signals.length * RESULTS_COL_WIDTH), FRAME_HEIGHT - BTM_HEIGHT - GRAPH_HEIGHT - PAD120)); resultsPanel.revalidate(); // Set up bottom panel. btmPanel.setLayout(null); btmPanel.setSize(FRAME_WIDTH, BTM_HEIGHT); btmPanel.setLocation(0, this.getHeight() - BTM_HEIGHT); btmPanel.setBackground(Color.white); // Instantiate bottom panel objects. footerLabel.setSize(LABEL_WIDTH, LABEL_HEIGHT); footerLabel.setLocation(LABEL_X, LABEL_Y); footerLabel.setText(""); doneButton.setIcon(new ImageIcon("img/22x22/stop.png")); doneButton.setSize(DONE_WIDTH, DONE_HEIGHT); doneButton.setLocation(FRAME_WIDTH - PAD20 - doneButton.getWidth(), PAD15); progressBar = new JProgressBar(); progressBar.setSize(FRAME_WIDTH - PAD40 - doneButton.getWidth() - footerLabel.getWidth(), PAD20); progressBar.setValue(0); progressBar.setLocation(footerLabel.getWidth() + PAD10, PAD22); // Populate bottom panel. btmPanel.add(footerLabel); btmPanel.add(progressBar); btmPanel.add(doneButton); // Populate main panel. mainPanel.add(graphPanel); mainPanel.add(scrollPane); mainPanel.add(btmPanel); return mainPanel; }
From source file:com.diversityarrays.kdxplore.design.EntryFileImportDialog.java
public EntryFileImportDialog(Window owner, String title, File inputFile, Predicate<Role> entryHeadingFilter) { super(owner, title, ModalityType.APPLICATION_MODAL); this.entryHeadingFilter = entryHeadingFilter; setDefaultCloseOperation(DISPOSE_ON_CLOSE); setGlassPane(backgroundRunner.getBlockingPane()); useScrollBarOption.addActionListener(new ActionListener() { @Override/*from ww w . j a v a2s. c o m*/ public void actionPerformed(ActionEvent e) { updateDataPreviewScrolling(); } }); headingRoleTableModel = createHeadingRoleTableModel(); headingRoleTable = new HeadingRoleTable<>(headingRoleTableModel); headingTableScrollPane = new JScrollPane(headingRoleTable); GuiUtil.setVisibleRowCount(headingRoleTable, 10); JPanel roleAssignmentPanel = new JPanel(new BorderLayout()); roleAssignmentPanel.add(headingTableScrollPane, BorderLayout.CENTER); headingRoleTable.setTransferHandler(flth); headingRoleTableModel.addChangeListener(headingRoleChangeListener); GuiUtil.setVisibleRowCount(dataPreviewTable, 10); dataPreviewTable.setTransferHandler(flth); dataPreviewScrollPane.setTransferHandler(flth); updateDataPreviewScrolling(); dataPreviewScrollPane.addComponentListener(new ComponentAdapter() { @Override public void componentResized(ComponentEvent e) { // boolean useScrollBar = useScrollBarOption.isSelected(); GuiUtil.initialiseTableColumnWidths(dataPreviewTable, true); } }); Box top = Box.createHorizontalBox(); top.add(new JLabel("# rows to preview: ")); top.add(new JSpinner(previewRowCountSpinnerModel)); top.add(Box.createHorizontalGlue()); top.add(useScrollBarOption); JPanel dataPreviewPanel = new JPanel(new BorderLayout()); dataPreviewPanel.add(GuiUtil.createLabelSeparator("Data Preview", top), BorderLayout.NORTH); dataPreviewPanel.add(dataPreviewScrollPane, BorderLayout.CENTER); headingWarning.setForeground(Color.RED); JLabel instructions = new JLabel("<HTML>Please assign a <i>Role</i> for each of the headings in your data" + "<br>You must specify one as the <i>Entry Name</i>." + "<br>Click on one of the <i>Role</i> cells and select from the dropdown" + "<br>To assign multiple headings, select the rows for which you wish" + "<br>to set the <i>Role</i> then right-click and choose from the dropdown."); instructions.setHorizontalAlignment(JLabel.CENTER); instructions.setBackground(Toast.PALE_YELLOW); JScrollPane instScroll = new JScrollPane(instructions); instScroll.setBackground(Toast.PALE_YELLOW); normalEntryNameField.getDocument() .addDocumentListener(new DocumentChangeListener((e) -> updateAcceptButton())); normalEntryNameField.setText(TrialDesignPreferences.getInstance().getNormalEntryTypeName()); JPanel rolesPanel = new JPanel(); GBH gbh = new GBH(rolesPanel, 2, 2, 0, 0); int y = 0; gbh.add(0, y, 1, 1, GBH.NONE, 0, 1, GBH.EAST, "Entry Type Name for non-Checks:"); gbh.add(1, y, 1, 1, GBH.NONE, 1, 1, GBH.WEST, normalEntryNameField); gbh.add(2, y, 1, 1, GBH.NONE, 1, 1, GBH.WEST, saveForFuture); ++y; gbh.add(0, y, 3, 1, GBH.BOTH, 2, 1, GBH.CENTER, roleAssignmentPanel); ++y; JSplitPane headingsAndInstructions = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, rolesPanel, instScroll); JPanel headingPanel = new JPanel(new BorderLayout()); headingPanel.add(GuiUtil.createLabelSeparator("Assign Roles for Headings"), BorderLayout.NORTH); headingPanel.add(headingsAndInstructions, BorderLayout.CENTER); headingPanel.add(headingWarning, BorderLayout.SOUTH); errorMessage.setEditable(false); JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, dataPreviewPanel, headingPanel); splitPane.setResizeWeight(0.5); cardPanel.add(new JScrollPane(errorMessage), CARD_ERROR); cardPanel.add(splitPane, CARD_DATA); Box bot = Box.createHorizontalBox(); bot.add(Box.createHorizontalGlue()); bot.add(new JButton(cancelAction)); bot.add(new JButton(acceptAction)); acceptAction.setEnabled(false); Container cp = getContentPane(); cp.add(cardPanel, BorderLayout.CENTER); cp.add(bot, BorderLayout.SOUTH); pack(); sheetNamesComboBox.addActionListener(sheetNamesActionListener); Timer timer = new Timer(true); previewRowCountSpinnerModel.addChangeListener(new ChangeListener() { int nPreview; TimerTask timerTask = null; @Override public void stateChanged(ChangeEvent e) { nPreview = previewRowCountSpinnerModel.getNumber().intValue(); if (timerTask == null) { timerTask = new TimerTask() { int lastPreviewCount = nPreview; @Override public void run() { if (lastPreviewCount == nPreview) { System.err.println("Stable at " + lastPreviewCount); // No change, do it now cancel(); try { updateDataPreview(lastPreviewCount); } finally { timerTask = null; } } else { System.err.println("Changing from " + lastPreviewCount + " to " + nPreview); lastPreviewCount = nPreview; } } }; timer.scheduleAtFixedRate(timerTask, 500, 100); } } }); sheetNamesComboBox.setVisible(false); addWindowListener(new WindowAdapter() { @Override public void windowOpened(WindowEvent e) { removeWindowListener(this); setFile(inputFile); } }); }
From source file:org.esa.snap.rcp.statistics.StatisticsPanel.java
@Override protected void initComponents() { init = true;/*from ww w . jav a 2 s . c o m*/ computePanel = new MultipleRoiComputePanel(this, getRaster()); exportButton = getExportButton(); final JPanel exportAndHelpPanel = GridBagUtils.createPanel(); GridBagConstraints helpPanelConstraints = GridBagUtils .createConstraints("anchor=NORTHWEST,fill=HORIZONTAL,insets.top=2,weightx=1,ipadx=0"); GridBagUtils.addToPanel(exportAndHelpPanel, new JSeparator(), helpPanelConstraints, "fill=HORIZONTAL,gridwidth=2,insets.left=5,insets.right=5"); GridBagUtils.addToPanel(exportAndHelpPanel, exportButton, helpPanelConstraints, "gridy=1,anchor=WEST,fill=NONE"); GridBagUtils.addToPanel(exportAndHelpPanel, getHelpButton(), helpPanelConstraints, "gridx=1,gridy=1,anchor=EAST,fill=NONE"); final JPanel rightPanel = GridBagUtils.createPanel(); GridBagConstraints extendedOptionsPanelConstraints = GridBagUtils .createConstraints("anchor=NORTHWEST,fill=HORIZONTAL,insets.top=2,weightx=1,insets.right=-2"); GridBagUtils.addToPanel(rightPanel, computePanel, extendedOptionsPanelConstraints, "gridy=0,fill=BOTH,weighty=1"); GridBagUtils.addToPanel(rightPanel, createAccuracyPanel(), extendedOptionsPanelConstraints, "gridy=1,fill=BOTH,weighty=1"); GridBagUtils.addToPanel(rightPanel, exportAndHelpPanel, extendedOptionsPanelConstraints, "gridy=2,anchor=SOUTHWEST,fill=HORIZONTAL,weighty=0"); final ImageIcon collapseIcon = UIUtils.loadImageIcon("icons/PanelRight12.png"); final ImageIcon collapseRolloverIcon = ToolButtonFactory.createRolloverIcon(collapseIcon); final ImageIcon expandIcon = UIUtils.loadImageIcon("icons/PanelLeft12.png"); final ImageIcon expandRolloverIcon = ToolButtonFactory.createRolloverIcon(expandIcon); hideAndShowButton = ToolButtonFactory.createButton(collapseIcon, false); hideAndShowButton.setToolTipText("Collapse Options Panel"); hideAndShowButton.setName("switchToChartButton"); hideAndShowButton.addActionListener(new ActionListener() { public boolean rightPanelShown; @Override public void actionPerformed(ActionEvent e) { rightPanel.setVisible(rightPanelShown); if (rightPanelShown) { hideAndShowButton.setIcon(collapseIcon); hideAndShowButton.setRolloverIcon(collapseRolloverIcon); hideAndShowButton.setToolTipText("Collapse Options Panel"); } else { hideAndShowButton.setIcon(expandIcon); hideAndShowButton.setRolloverIcon(expandRolloverIcon); hideAndShowButton.setToolTipText("Expand Options Panel"); } rightPanelShown = !rightPanelShown; } }); contentPanel = new JPanel(new GridLayout(-1, 1)); contentPanel.setBackground(Color.WHITE); contentPanel.addMouseListener(popupHandler); final JScrollPane contentScrollPane = new JScrollPane(contentPanel); contentScrollPane.setBorder(null); contentScrollPane.setBackground(Color.WHITE); backgroundPanel = new JPanel(new GridBagLayout()); GridBagConstraints gbc = new GridBagConstraints(); GridBagUtils.addToPanel(backgroundPanel, contentScrollPane, gbc, "fill=BOTH, weightx=1.0, weighty=1.0, anchor=NORTH"); GridBagUtils.addToPanel(backgroundPanel, rightPanel, gbc, "gridx=1, fill=VERTICAL, weightx=0.0"); JLayeredPane layeredPane = new JLayeredPane(); layeredPane.add(backgroundPanel); layeredPane.add(hideAndShowButton); add(layeredPane); }