Re: Scroll bar not showing up
Andrew Thompson wrote:
fiziwig wrote:
Steve W. Jackson wrote:
..
By the time you've removed 1540 lines of that code, you will
either have a working example, or a broken example that
others might be willing to look at..
Andrew T.
Good advice. I gutted the code, removing all but one menu and toolbar
item and removing all the program logic. It still doesn't show the
scroll bar, so here's the remaining few lines of compilable code:
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.MouseListener;
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import javax.accessibility.*;
import java.awt.event.*;
public class Example extends JPanel
implements AdjustmentListener {
private int mOffsetX = 0;
private int mOffsetY = 0;
private boolean gridShowing = false;
private boolean marginShowing = false;
private boolean snapToGrid = false;
private boolean hasChanged = false;
private int newRegionNumber = 1;
private String knownFilename = "";
static private JFrame parentFrame;
public JLayeredPane layeredPane;
private JMenuBar theMenuBar;
private JToolBar toolBar;
private JMenu fileMenu;
private JMenuItem newDocMenuItem;
private SpinnerNumberModel sizeSpinnerModel;
private JSpinner sizeSpinner;
private JScrollBar vScrollBar;
public Example() {
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
buildMenu();
add(buildToolbar());
//Create and set up the layered pane.
layeredPane = new JLayeredPane();
layeredPane.setPreferredSize(new Dimension(640, 500));
layeredPane.setBackground(Color.white);
layeredPane.setOpaque(true);
vScrollBar = new JScrollBar(JScrollBar.VERTICAL, 10, 30, 0,
100);
layeredPane.add(vScrollBar, BorderLayout.EAST);
vScrollBar.setEnabled(false);
vScrollBar.addAdjustmentListener(this);
add(layeredPane);
}
// Scroll bar event handlers
public void adjustmentValueChanged(AdjustmentEvent e) {
System.out.println("New value="+e.getValue());
}
/**
* Create the GUI and show it. For thread safety,
* this method should be invoked from the
* event-dispatching thread.
*/
private static void createAndShowGUI() {
//Make sure we have nice window decorations.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
parentFrame = new JFrame("Example");
parentFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new Example();
newContentPane.setOpaque(true); //content panes must be opaque
parentFrame.setContentPane(newContentPane);
//Display the window.
parentFrame.pack();
parentFrame.setVisible(true);
}
//===========================================================================
// build menu
public void buildMenu() {
theMenuBar = new JMenuBar();
theMenuBar.setLayout(new BoxLayout(theMenuBar,
BoxLayout.X_AXIS));
// File menu
fileMenu = new JMenu("File");
fileMenu.setMnemonic(KeyEvent.VK_F);
fileMenu.getAccessibleContext().setAccessibleDescription("File
menu");
ActionListener importActions = new ActionListener() {
public void actionPerformed( ActionEvent e )
{
Object source = e.getSource();
}
};
newDocMenuItem = new JMenuItem("New");
newDocMenuItem.getAccessibleContext().setAccessibleDescription("Create
a new file or template");
fileMenu.add(newDocMenuItem);
newDocMenuItem.addActionListener(importActions);
// add Menus and menu bar
theMenuBar.add(fileMenu);
parentFrame.setJMenuBar(theMenuBar);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
private JToolBar buildToolbar() {
toolBar = new JToolBar();
toolBar.setRollover( true );
toolBar.setFloatable( false );
// font sizes
sizeSpinner = new JSpinner();
Dimension d = new Dimension( 40, 25 );
sizeSpinner.setMinimumSize( d );
sizeSpinner.setPreferredSize( d );
sizeSpinner.setMaximumSize( d );
sizeSpinnerModel = new SpinnerNumberModel( /* init value */ 18,
/* min*/ 8,
/* max */ 72,
/* step */ 1 );
sizeSpinner.setModel( sizeSpinnerModel );
sizeSpinner.addChangeListener( new ChangeListener() {
/**
* Invoked when the sizeSpinner changes
*
* @param e a ChangeEvent object
*/
public void stateChanged( ChangeEvent e )
{
}
} );
toolBar.add( sizeSpinner );
return toolBar;
}
}