Scrollbar in panel
Hi,
I want to display tree structure ina panel .
this panel , i have created using net beans .
i want the scrollbar to be added to the panel.
could you please help me in getting that done.
my code is as follows.
Sources1 is a panel.
tree is a JTree.
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport();
scrollPane.setPreferredSize(new Dimension(250, 80));
scrollPane.add(tree);
tree.add( scrollPane, BorderLayout.EAST );
Sources1.add(tree, "West");
this is not displaying scrollbar.
any help is appreciated.
regards
hari
tree.add( scrollPane, BorderLayout.EAST ); You don't need this line.
Sources1.add(tree, "West");Add the scroll pane (not the tree) to the panel.
Similar Messages
-
Scrollbar in Panel.....help
hi.... i have to add images(picture) in Panel .because I have to add more pictures(image), scrollbar (or JScrollPane) will require please help me how to do.
U can also help in respect of following program, Thanks.
// <applet code="AnImageApplet" width="400" height="400"></applet>
// use: >appletviewer AnImageApplet.java
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class AnImageApplet extends Applet
public void init()
setLayout(new BorderLayout());
add(new AnImagePanel());
public static void main( String[] args )
Applet applet = new AnImageApplet();
Frame frame = new Frame( "Image" );
frame.addWindowListener(closer);
frame.add(applet);
frame.setSize(400,400);
frame.setLocation(200,200);
applet.init();
frame.setVisible(true);
private static WindowListener closer = new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
class AnImagePanel extends Panel
BufferedImage image;
public AnImagePanel()
try
image = ImageIO.read(//"yu.jpg");
new File("images/cougar.jpg"));
catch(IOException e)
System.out.println("Read error: " + e.getMessage());
public void paint(Graphics g) {
g.drawImage(image, 20, 20, this);
}// <applet code="AnImageApplet" width="400" height="400"></applet>
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
public class AnImageApplet extends Applet {
public void init() {
setLayout(new BorderLayout());
ScrollPane scrollPane = new ScrollPane();
scrollPane.add(getContent());
add(scrollPane);
private Panel getContent() {
Panel panel = new Panel(new GridLayout(0,2,5,5));
panel.add(new AnImagePanel("images/cougar.jpg"));
panel.add(new AnImagePanel("images/bclynx.jpg"));
panel.add(new AnImagePanel("images/redfox.jpg"));
panel.add(new AnImagePanel("images/mtngoat.jpg"));
return panel;
public static void main( String[] args ) {
Applet applet = new AnImageApplet();
Frame frame = new Frame( "Image" );
frame.addWindowListener(closer);
frame.add(applet);
frame.setSize(400,400);
frame.setLocation(200,200);
applet.init();
frame.setVisible(true);
private static WindowListener closer = new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
class AnImagePanel extends Panel {
BufferedImage image;
public AnImagePanel(String path) {
try {
image = ImageIO.read(new File(path));
} catch(IOException e) {
System.out.println("Read error: " + e.getMessage());
public void paint(Graphics g) {
int x = (getWidth() - image.getWidth())/2;
int y = (getHeight() - image.getHeight())/2;
g.drawImage(image, x, y, this);
public Dimension getPreferredSize() {
return new Dimension(image.getWidth(), image.getHeight());
} -
Use scrollbars when panel too small for components in it
Hi
I've got a JPanel which just uses flow layout to contain some components. The panel resizes with the JFrame it is in, and wraps the components to new "rows" of components if the width of the JFrame gets too small. Fine.
If the space available is not sufficient, the components go off the bottom of the JPanel.
So I thought "put the JPanel inside a JScrollPane".
Problem is that the JScrollPane does not try to wrap the components to a new row of components if the width of the JFrame is too small. Instead, it displays the horizontal scrollbar, and ignores the fact that there is more space available.
Below is some code - run the main method to see what I mean.
If I set the layout for the JScrollPane to something else than the default ViewportLayout (eg GridLayout), then the components wrap to new rows as I want, but the horizontal scrollbar displays then, and it should not. Moreover, the vertical scrollbar never displays at all, even when the JFrame is not tall enough to display even a single rows of components.
Can anyone show me what I am supposed to do?
Thanks
Mark
package com.evotec.CCDViewer.Real3.mypackage;
import java.awt.*;
import javax.swing.*;
public class TestScrollPanes extends JFrame {
private JScrollPane jScrollPane1 = new JScrollPane();
private BorderLayout borderLayout1 = new BorderLayout();
private JPanel jPanel1 = new JPanel();
private JButton jButton1 = new JButton();
private JButton jButton2 = new JButton();
private JButton jButton3 = new JButton();
private JButton jButton4 = new JButton();
private JButton jButton5 = new JButton();
private GridLayout gridLayout1 = new GridLayout();
public TestScrollPanes() {
try {
jbInit();
} catch(Exception e) {
e.printStackTrace();
this.setSize(500,500);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
public static void main(String[] args) {
new TestScrollPanes();
private void jbInit() throws Exception {
this.getContentPane().setLayout(borderLayout1);
this.setSize(new Dimension(354, 270));
jScrollPane1.getViewport().setLayout(gridLayout1);
jButton1.setText("jButton1");
jButton2.setText("jButton2");
jButton3.setText("jButton3");
jButton4.setText("jButton4");
jButton5.setText("jButton5");
jPanel1.add(jButton1, null);
jPanel1.add(jButton2, null);
jPanel1.add(jButton3, null);
jPanel1.add(jButton4, null);
jPanel1.add(jButton5, null);
jScrollPane1.getViewport().add(jPanel1, null);
this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
}Custom24, the problem you are running into is due to a conflict between the
FlowLayout and the ScrollPane; FlowLayout only wraps components when
it hits the width of the panel, but inside a ScrollPane, the panel can be as
wide as it wants. So, you have to limit that somehow. Also, FlowLayout goes
right after the width of the panel, not the preferred width, and not via an
accessor; it uses it directly.
So, this seems to work.
import java.awt.*;
import javax.swing.*;
public class TestScrollableFlowPanel extends JFrame {
public static void main( String[] args ) {
Runnable doEDT = new Runnable() {
public void run() {
new TestScrollableFlowPanel();
SwingUtilities.invokeLater( doEDT );
public TestScrollableFlowPanel() {
try {
jbInit();
} catch ( Exception e ) {
e.printStackTrace();
this.setSize( 300, 300 );
this.setDefaultCloseOperation( EXIT_ON_CLOSE );
this.setVisible( true );
private void jbInit() throws Exception {
ScrollableFlowPanel panel = new ScrollableFlowPanel();
for ( int k = 0; k < 120; k++ )
panel.add( new JButton( "Button" + k ) );
JScrollPane scroll = new JScrollPane( panel );
this.getContentPane().setLayout( new BorderLayout() );
this.getContentPane().add( scroll, BorderLayout.CENTER );
static public class ScrollableFlowPanel extends JPanel implements Scrollable {
public void setBounds( int x, int y, int width, int height ) {
super.setBounds( x, y, getParent().getWidth(), height );
public Dimension getPreferredSize() {
return new Dimension( getWidth(), getPreferredHeight() );
public Dimension getPreferredScrollableViewportSize() {
return super.getPreferredSize();
public int getScrollableUnitIncrement( Rectangle visibleRect, int orientation, int direction ) {
int hundredth = ( orientation == SwingConstants.VERTICAL
? getParent().getHeight() : getParent().getWidth() ) / 100;
return ( hundredth == 0 ? 1 : hundredth );
public int getScrollableBlockIncrement( Rectangle visibleRect, int orientation, int direction ) {
return orientation == SwingConstants.VERTICAL ? getParent().getHeight() : getParent().getWidth();
public boolean getScrollableTracksViewportWidth() {
return true;
public boolean getScrollableTracksViewportHeight() {
return false;
private int getPreferredHeight() {
int rv = 0;
for ( int k = 0, count = getComponentCount(); k < count; k++ ) {
Component comp = getComponent( k );
Rectangle r = comp.getBounds();
int height = r.y + r.height;
if ( height > rv )
rv = height;
rv += ( (FlowLayout) getLayout() ).getVgap();
return rv;
}: jay -
Scrollbars and panels, weird behavior
when i resize my app the scrollbars just dont stay where they
should.
using the scrollbars on the panels dont seem to work, if the
content extends beyond the bottom of the panel, the panel doesnt
even offer to scroll, so i've had to do this with whatever layout
piece is inside the panel, i.e. vbox, hbox, tilelist. the problem
with that is the panel allows the scrollbar to extend below the
bottom of the panel, so the bottom arrow on the scroll bar is not
visible. this is driving me nuts.
ive tried making a function to run on the application resize,
but i just cant get it to work right.. has anyone else had a
problem with this?
thanks!Basically each component at whatever level will resize to the
next level up and add scroll bars accordingly. If you don't want
this behavior then only constrain the outermost container, then the
layout of it's children will remain the same (you'll just have to
scroll to see the rest of the content. This applies to the
Application as well (set verticleScrollPolicy=true in the
Application tab) you might also have to use
layout="absolute". -
Hello,
referred to the Adobe Toolscript PDF I tried to add an scrollbar to my dialog.
I dont clearly understand how this works.
In my snippet the scroll is added to the dialog but I cant manage to add content to it.
Hopefully someone here can help me with that.
// CREATE new Window (GERMAN)...
var dlg = new Window('dialog', "Radiobutton Test with Scrollbar", [0, 0, 530, 150]);
// add panel...
dlg.msgPnl = dlg.add('panel', [5,20,526,105], '');
dlg.msgPnl.rbBtn1 = dlg.msgPnl.add('radiobutton', [5, 5, 100, 25], "Button1");
dlg.msgPnl.rbBtn2 = dlg.msgPnl.add('radiobutton', [5, 30, 100, 50], "Button2");
dlg.msgPnl.rbBtn3 = dlg.msgPnl.add('radiobutton', [5, 55, 100, 75], "Button3");
dlg.msgPnl.rbBtn4 = dlg.msgPnl.add('radiobutton', [5, 80, 100, 100], "Button4");
dlg.msgPnl.rbBtn5 = dlg.msgPnl.add('radiobutton', [5, 105, 100, 125], "Button5");
dlg.msgPnl.rbBtn6 = dlg.msgPnl.add('radiobutton', [5, 130, 100, 150], "Button6");
dlg.msgPnl.rbBtn7 = dlg.msgPnl.add('radiobutton', [5, 155, 100, 175], "Button7");
dlg.msgPnl.rbBtn8 = dlg.msgPnl.add('radiobutton', [5, 180, 100, 185], "Button8");
dlg.msgPnl.rbBtn9 = dlg.msgPnl.add('radiobutton', [5, 190, 100, 210], "Button9");
dlg.msgPnl.rbBtn10 = dlg.msgPnl.add('radiobutton', [5, 215, 100, 235], "Button10");
dlg.msgPnl.scrollbar = dlg.msgPnl.add('scrollbar', [(dlg.msgPnl.bounds.width-20), 0, (dlg.msgPnl.bounds.width), dlg.msgPnl.bounds.height]);
// add ok button.
dlg.okBtn = dlg.add('button', [426, 122, 526, 146], 'OK', {name:'ok'});
dlg.msgPnl.scrollbar.stepdelta = 40;
dlg.msgPnl.scrollbar.minvalue = 0;
dlg.msgPnl.scrollbar.maxvalue = dlg.msgPnl.bounds.height;
dlg.msgPnl.scrollbar.scroll = function(scrollTo) {
var pnl = this.parent;
pnl.bounds.top = -scrollTo;
pnl.bounds.bottom = -scrollTo + pnl._height;
dlg.msgPnl.scrollbar.onChange = function() {
var pnl = this.parent;
pnl.scrollbar.scroll(pnl.scrollbar.value);
dlg.msgPnl.scrollbar.onChanging = function() {
dlg.msgPnl.scrollbar.scroll(dlg.msgPnl.scrollbar.value);
// ONCLICK NO button...
dlg.okBtn.onClick = function() {
dlg.close(0);
dlg.center();
dlg.show();
Thx in advance!Well, that's not the way I usually simulate scrolling, but let's experiment the canonical approach:
var N_TOT=25, // total number of buttons
N_VIEW=5; // number of visible buttons
var dlg = new Window('dialog', "Scrollbar Test"),
panel = dlg.add('panel'),
gRadios = panel.add('group'),
sb = panel.add('scrollbar'),
bOK = dlg.add('button', undefined, "OK"),
rButtons = [];
// UI Design
panel.orientation = 'row';
panel.margins = 0;
gRadios.margins = 15;
gRadios.orientation = 'column';
gRadios.alignChildren = ['left','fill'];
sb.alignment = ['right', 'fill'];
sb.preferredSize = [20,-1];
sb.value = sb.minvalue = 0;
sb.maxvalue = N_TOT>N_VIEW ? N_TOT-N_VIEW : 0;
sb.stepdelta = 20;
sb.enabled = !!sb.maxvalue;
// Create radio buttons
var i;
for( i=0 ; i< N_TOT ; ++i )
rButtons[i] = gRadios.add('radiobutton', undefined, "Button"+(1+i));
if( N_VIEW==1+i )
{ // snapshot
dlg.layout.layout(true);
panel.height = panel.size[1];
sb.height = sb.size[1];
dlg.height = dlg.size[1];
dlg.layout.layout(true);
// Scrolling system
if( sb.enabled )
sb.offset = panel.size[1]-panel.height;
panel.size = [panel.size[0], panel.height];
sb.size = [sb.size[0], sb.height];
dlg.size = [dlg.size[0], dlg.height];
sb.onChanging = sb.onChange = function()
gRadios.bounds.top = -sb.value*sb.offset/sb.maxvalue;
dlg.show();
Does it work?
@+
Marc -
I inserted an accordion with two panels. Panel 1 - and Panel
2 is at the bottom. When I click on Panel 2, it opens Panel 1 to
full view. and when I click on Panel 1, it opens Panel 2 to full
view. How do I fix it so if I click on panel 2, panel 2 opens to
full view and if I click on panel 1, panel 1 opens to full
view?Well I cannot post it to production on the website, it is
only in my testing stage area. Can I attach the .htm document -
.css and .js files somewhere or e-mail them?
When the page loads there are two panels, panel 1 shows with
a scrollbar, and panel 2 shows under that - which panel 2 displays
the entire panel. When I click on panel 1, it doesn't show the
entire panel for panel1, it just stays there with the scroll bar. i
want to be able to click on Panel 1 and then it show the entire
panel for panel 1 and then panel 2 will be shortened with the
scroll bar and vise versa. -
Need help urgently in blending images
Hi below are the codes for blending two images together in a mosaic...could anybody tell me how can i actually change the alpha to the same degree?? Thanks :)
import java.awt.*;
import java.awt.event.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Random;
import com.sun.image.codec.jpeg.*;
public class ShowOff extends Component
public static void main(String[] args)
try
*The image is loaded either from this default filename or first
*command-line arguement specifies what string will be displayed.
*The third specifies at what point in the string the background
*color will change.
String filename = "test.jpg";
String message = "Java2D";
int split = 4;
if(args.length>0) filename = args[0];
if(args.length>1) message = args[1];
if(args.length>2) split = Integer.parseInt(args[2]);
ApplicationFrame f = new ApplicationFrame("--Image Mosaic--");
f.setLayout(new BorderLayout());
ShowOff showOff = new ShowOff(filename, message, split);
f.add(showOff, BorderLayout.CENTER);
f.setSize(f.getPreferredSize());
f.center();
f.setResizable(true);
f.setVisible(true);
catch (Exception e)
System.out.println(e);
System.exit(0);
private BufferedImage mImage;
private Font mFont;
private String mMessage;
private int mSplit;
private TextLayout mLayout;
public ShowOff(String filename, String message, int split)throws IOException, ImageFormatException{
//get specified image
InputStream in = getClass().getResourceAsStream(filename);
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(in);
mImage = decoder.decodeAsBufferedImage();
in.close();
//save the message and split
mMessage = message;
mSplit = split;
//set our size to match the image's size
setSize((int)mImage.getWidth(), (int)mImage.getHeight());
public void paint(Graphics g)
Graphics2D g2 = (Graphics2D)g;
//Turn on antialiasing
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
//AffineTransform aTranw1 = new AffineTransform();
// aTranw1.translate(1.0f, 1.0f);
// g2.transform(aTranw1);
drawTileImage(g2);
drawImageMosaic(g2);
protected void drawTileImage(Graphics2D g2)
Graphics2D g2w = (Graphics2D) g2;
//The RenderingHints class contains rendering hints that can be used
//by the Graphics2D class
RenderingHints rhw = g2w.getRenderingHints();
rhw.put (RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2w.setRenderingHints(rhw);
String filenamew = "C:/mosaic/redflower6.gif";
Image imgw = getToolkit().getImage(filenamew);
AffineTransform aTranw = new AffineTransform();
aTranw.translate(1.0f, 1.0f);
g2w.transform(aTranw);
g2w.drawImage(imgw, new AffineTransform(), this);
protected void drawImageMosaic(Graphics2D g2)
//break image up into tiles. Draw each tile with its own transparency,
//allowing background to show through to varying degrees.
int side = 50;
int width = mImage.getWidth();
int height = mImage.getHeight();
for(int y = 0; y < height; y+= side)
for(int x = 0; x < width; x+= side)
//calculate an appropriate transparency value.
float xBias = (float)x / (float)width;
float yBias = (float)y / (float)height;
float alpha = 1.0f - Math.abs(xBias - yBias);
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
//draw subimage
int w = Math.min(side, width - x);
int h = Math.min(side, height - y);
BufferedImage tile = mImage.getSubimage(x,y,w,h);
g2.drawImage(tile,x,y,null);
//reset the composite
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f));
}import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;
public class BlendingTest
public BlendingTest()
BlendingPanel blendingPanel = new BlendingPanel();
BlendingControl control = new BlendingControl(blendingPanel);
Frame f = new Frame();
f.addWindowListener(new WindowAdapter()
public void windowClosing(WindowEvent e)
System.exit(0);
f.add(blendingPanel);
f.add(control.getUIPanel(), "South");
f.setSize(400,400);
f.setLocation(200,200);
f.setVisible(true);
public static void main(String[] args)
new BlendingTest();
class BlendingPanel extends Panel
private BufferedImage[] images;
private float alpha;
public BlendingPanel()
alpha = 0.0f;
loadImages();
public void paint(Graphics g)
Graphics2D g2 = (Graphics2D)g;
int w = getWidth();
int h = getHeight();
int x, y, imageWidth, imageHeight;
float alphaVal;
AlphaComposite ac;
for(int j = 0; j < images.length; j++)
imageWidth = images[j].getWidth();
imageHeight = images[j].getHeight();
x = (w - imageWidth)/2;
y = (h - imageHeight)/2;
if(j == 0)
alphaVal = alpha;
else
alphaVal = 1.0f - alpha;
ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alphaVal);
g2.setComposite(ac);
g2.drawImage(images[j], x, y, this);
public void update(Graphics g)
paint(g);
public void setAlpha(float value)
alpha = value;
repaint();
private void loadImages()
String[] fileNames = { "greathornedowl.jpg", "mtngoat.jpg" };
images = new BufferedImage[fileNames.length];
for(int j = 0; j < images.length; j++)
try
URL url = getClass().getResource("images/" + fileNames[j]);
images[j] = ImageIO.read(url);
catch(MalformedURLException mue)
System.err.println("url: " + mue.getMessage());
catch(IOException ioe)
System.err.println("read: " + ioe.getMessage());
class BlendingControl implements AdjustmentListener
BlendingPanel blendingPanel;
Scrollbar scrollbar;
int maximum;
int visibleAmount;
public BlendingControl(BlendingPanel bp)
blendingPanel = bp;
maximum = 100;
visibleAmount = 10;
scrollbar = new Scrollbar(Scrollbar.HORIZONTAL, 0, visibleAmount, 0, maximum);
scrollbar.addAdjustmentListener(this);
public void adjustmentValueChanged(AdjustmentEvent e)
// see scrollbar api to understand divisor expression
float value = e.getValue()/(float)(maximum - visibleAmount);
blendingPanel.setAlpha(value);
public Panel getUIPanel()
Panel panel = new Panel(new BorderLayout());
panel.add(scrollbar);
return panel;
} -
i have following piece of code used to load and display image on jpanel when application starts.
the problem is that
image is not loaded efficiently,
also it covers other panels added in frame.
and scrollbar of panel does not work to show parts of image.
i want to efficiently load the image and to fit in in my panel and also to scroll bar to work proper with image.
looking for any nice suggestion
public class MainFrame extends JFrame
Image image = Toolkit.getDefaultToolkit().createImage("c:\\form-3.jpg");
javax.swing.JScrollBar jScrollBar1 = new JScrollBar();
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JPanel jPanel2 = new JPanel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
public MainFrame()
try
{ jbInit(); } catch (Exception ex)
{ ex.printStackTrace(); }
public static void main(String[] args)
MainFrame mainFrame = new MainFrame();
jBInit Method defined here
public void paint(Graphics g)
g.drawImage(image,0,0,jPanel1);
Message was edited by:
@tifYou have overided the paint method on JFrame then you are drowing on entire Frame.
Instead you have to override the paintComponent method of a JPanel class or use a JLabel with the image -
Got a newcomputer and now firefox crashes alot.always on facebook. why?
i got a new computer and now firefox crashes hourly. I downloaded the latest version of firefox and now i have windows 7. the crashes always happen in facebook. why does this happen on a new computer? the computer is 3 hours old
== Crash ID(s) ==
html body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td table fieldset,img address,caption,cite,code,dfn,em,strong,th,var li caption,th h1,h2,h3,h4,h5,h6 q:before,q:after abbr,acronym sup sub input,textarea,select input,textarea,select{*font-size:100%}legend body table pre,code,kbd,samp,tt body #ft #doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7 #doc2 #doc3 #doc4 .yui-b .yui-b{_position:static}#yui-main .yui-b #yui-main .yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main .yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main .yui-t1 .yui-b .yui-t1 #yui-main .yui-b .yui-t2 .yui-b .yui-t2 #yui-main .yui-b .yui-t3 .yui-b .yui-t3 #yui-main .yui-b .yui-t4 .yui-b .yui-t4 #yui-main .yui-b .yui-t5 .yui-b .yui-t5 #yui-main .yui-b .yui-t6 .yui-b .yui-t6 #yui-main .yui-b .yui-t7 #yui-main .yui-b #yui-main .yui-b .yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u .yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u .yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first .yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf .yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u .yui-gb .yui-u{*margin-left:1.9%;*width:31.9%}.yui-gc div.first,.yui-gd .yui-u .yui-gd div.first .yui-ge div.first,.yui-gf .yui-u .yui-ge .yui-u,.yui-gf div.first .yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first .yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u .yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%}.yui-g .yui-gc div.first,.yui-gd .yui-g .yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%}.yui-g .yui-gb .yui-u{_margin-left:1.0%}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u .yui-gb .yui-gc div.first .yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u .yui-gb .yui-gb .yui-u{_margin-left:.7%}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0}s .yui-gb .yui-gd div.first .yui-g .yui-gd div.first{_width:29.9%}.yui-ge .yui-g .yui-gf .yui-g .yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u .yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first .yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%}.yui-ge div.first .yui-gd .yui-u .yui-ge div.first .yui-gd div.first #bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after #bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf .yui-overlay,.yui-panel-container .yui-panel-container form .mask .mask.block-scrollbars .masked select,.drag select,.hide-select select{_visibility:hidden}.yui-panel-container select{_visibility:inherit}.hide-scrollbars,.hide-scrollbars * .hide-scrollbars select .show-scrollbars .yui-panel-container.show-scrollbars,.yui-tt.show-scrollbars .yui-panel-container.show-scrollbars .underlay,.yui-tt.show-scrollbars .yui-tt-shadow .yui-panel-container.shadow .underlay.yui-force-redraw .yui-effect-fade .underlay .yui-tt-shadow .yui-skin-sam .mask .yui-skin-sam .yui-panel-container .yui-skin-sam .yui-panel .yui-skin-sam .yui-panel .hd,.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{*zoom:1;*position:relative;border-style:solid;border-width:0 1px;border-color:#808080;margin:0 -1px}.yui-skin-sam .yui-panel .hd .yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft .yui-skin-sam .yui-panel .hd .yui-skin-sam .yui-panel .bd .yui-skin-sam .yui-panel .ft .yui-skin-sam .yui-panel-container.focused .yui-panel .hd{}.yui-skin-sam .container-close .yui-skin-sam .yui-panel-container .underlay .yui-skin-sam .yui-panel-container.matte .yui-skin-sam .yui-panel-container.shadow{_padding:2px 5px 0 3px}.yui-skin-sam .yui-panel-container.shadow .underlay .yui-skin-sam .yui-dialog .ft .yui-skin-sam .yui-dialog .ft .button-group .yui-skin-sam .yui-dialog .ft button.default .yui-skin-sam .yui-dialog .ft span.default .yui-skin-sam .yui-dialog .ft span.default .first-child .yui-skin-sam .yui-dialog .ft span.default button .yui-skin-sam .yui-simple-dialog .bd .yui-icon .yui-skin-sam .yui-simple-dialog .bd span.blckicon .yui-skin-sam .yui-simple-dialog .bd span.alrticon .yui-skin-sam .yui-simple-dialog .bd span.hlpicon .yui-skin-sam .yui-simple-dialog .bd span.infoicon .yui-skin-sam .yui-simple-dialog .bd span.warnicon .yui-skin-sam .yui-simple-dialog .bd span.tipicon .yui-skin-sam .yui-tt .bd .yui-skin-sam .yui-tt.show-scrollbars .bd .yui-skin-sam .yui-tt-shadow .yui-skin-sam .yui-tt-shadow-visible .yuimenubar .yuimenu .yuimenu,.yuimenubar .yuimenu .yuimenubar li,.yuimenu li .yuimenubar ul,.yuimenu ul,.yuimenubar li,.yuimenu li,.yuimenu h6,.yuimenubar h6 .yuimenuitemlabel,.yuimenubaritemlabel .yuimenubar ul{*zoom:1}.yuimenubar .yuimenu ul{*zoom:normal}.yuimenubar>.bd>ul:after .yuimenubaritem .yuimenubaritemlabel,.yuimenuitemlabel .yuimenuitemlabel .helptext .yui-menu-shadow .yui-menu-shadow-visible .hide-scrollbars * .hide-scrollbars select .yuimenu.show-scrollbars,.yuimenubar.show-scrollbars .yuimenu.hide-scrollbars .yui-menu-shadow,.yuimenubar.hide-scrollbars .yui-menu-shadow .yuimenu.show-scrollbars .yui-menu-shadow,.yuimenubar.show-scrollbars .yui-menu-shadow .yui-skin-sam .yuimenubar .yui-skin-sam .yuimenubarnav .yuimenubaritem .yui-skin-sam .yuimenubaritemlabel .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu .yui-skin-sam .yuimenubaritem-selected .yui-skin-sam .yuimenubaritemlabel-selected .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected .yui-skin-sam .yuimenubaritemlabel-disabled .yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled .yui-skin-sam .yuimenu .yui-skin-sam .yuimenubar .yuimenu,.yui-skin-sam .yuimenu .yuimenu .yui-skin-sam .yuimenu .bd .yui-skin-sam .yuimenu ul .yui-skin-sam .yuimenu ul.first-of-type .yui-skin-sam .yuimenu h6 .yui-skin-sam .yuimenu ul.hastitle,.yui-skin-sam .yuimenu h6.first-of-type .yui-skin-sam .yuimenu .yui-menu-body-scrolled .yui-skin-sam .yuimenu .topscrollbar,.yui-skin-sam .yuimenu .bottomscrollbar .yui-skin-sam .yuimenu .topscrollbar .yui-skin-sam .yuimenu .topscrollbar_disabled .yui-skin-sam .yuimenu .bottomscrollbar .yui-skin-sam .yuimenu .bottomscrollbar_disabled .yui-skin-sam .yuimenuitem{_border-bottom:solid 1px #fff}.yui-skin-sam .yuimenuitemlabel .yui-skin-sam .yuimenuitemlabel .helptext .yui-skin-sam .yuimenuitem-hassubmenu .yui-skin-sam .yuimenuitem-checked .yui-skin-sam .yui-menu-shadow-visible .yui-skin-sam .yuimenuitem-selected .yui-skin-sam .yuimenuitemlabel-disabled .yui-skin-sam .yuimenuitem-hassubmenu-disabled .yui-skin-sam .yuimenuitem-checked-disabled body #nav-access #moz_global_home a #wrap #doc #doc[dir="rtl"] #doc:after .hide #header #header h1 #header h1 a:link, #header h1 a:visited #nav-main #nav-main ul #nav-main ul, #nav-main ul li #nav-main ul #nav-main ul li a, #nav-main ul li span #nav-main ul li a:link, #nav-main ul li a:visited #nav-main ul li span, #nav-main ul li a:hover, #nav-main ul li a:active, #nav-main ul li a.yuimenubaritemlabel-selected #nav-main ul ul, #nav-main ul ul li #nav-main ul ul #nav-main ul li ul li a, #nav-main ul li ul li a:link, #nav-main ul li ul li a:visited, #nav-main ul li ul li span #nav-main ul li ul li a:hover, #nav-main ul li ul li a:active #moz_global_search #moz_global_search #query #moz_global_search #query:focus #moz_global_search #submit #breadcrumbs #breadcrumbs ul #breadcrumbs ul li #breadcrumbs ul li.divider #breadcrumbs span, #breadcrumbs a #breadcrumbs a:hover, #breadcrumbs a:active #footer * html #footer #footer a:link, #footer a:visited #footer a:hover, #footer a:active #footer-contents #footer-contents[dir=rtl] #footer-menu, #footer-menu ul #footer-menu li #footer-menu li ul #footer-menu ul li #footer form, #footer #lang_form #footer #lang_form label #footer #lang_form div #footer #cc-license #footer #cc-license p #footer #cc-license p:first-child #footer #cc-license a #cc-license ul li #footer #footer-links #footer-divider hr #footer-divider #main-feature #main-feature h2 #main-feature p #side-menu #side-menu li #side-menu li.first #side-menu li ul #side-menu li ul li #side-menu h3 #side-menu a:link, #side-menu a:visited #side-menu a.on:link, #side-menu a.on:visited .mini #side-menu a.on:link, .mini #side-menu a.on:visited #side-menu h3 a.on:link, #side-menu h3 a.on:visited #side-menu a:hover, #side-menu a:active #main-content #sidebar #content #tiki-clean h1,h2,h3,h4,h5,h6 li h1, li h2, li h3, li h4, li h5, li h6 h1 h2 h3 h4 h5 h6 strong em :link :visited :link:hover,:visited:hover :link:active,:link:active .feature-contents .feature-contents #dev-server .feature-contents h2 .feature-contents p .searchlogotitle #searchsubmit .content div.showpage div.searchlogo div.searchlogoform .searchlogoform form div.wikitext div.cornerbox .cornerbox h3 .cornerbox a:link, .cornerbox a:visited blockquote div img input,button input[type="submit"],input[type="file"],button,select button:hover select[multiple] select[name="theme"] input[type="checkbox"] input[id="fsearch"] input[id="fsearch"].search-include-advanced a.home-advanced-search #search-try a.home-advanced-search small form ul,ol #mainmenu br #attzone,#comzone #rules-copy-panel #clear .clear div.box h3.box-title .cornerbox h3.box-title .box-title a:link .box-data .box:last-child .box-data #col1 .box-login_box .box-data #col1 .box-login_box .box-data #login-button #col1 .box-login_box .box-title .module .module li .box-data li .box-search .box-title #mod-search #mod-search #fsearch .mod-searchlogoform .mod-searchlogoform form .mod-searchlogotitle div.cbox div.cbox-title div.cbox-data .cbox-data ul .cbox-data ul ul .rbox .rbox-title .rbox-data div.simplebox .highlight .tabmark .tabmark a .tabmark a:active .tabmark a:hover .tabcontent .statuson .statusoff #editwiki a.pagetitle a.pagetitle:hover div.editdate div.editdate a, div.editdate a:hover, div.editdate i div.description #pageid #cachedpage .versionnotice .wikitext .wikitext h1,h2,h3,h4 .wikitext h2 .titlebar .wikitext ol, .posted-text ol .wikitext ul, .posted-text ul .wikitext li, .posted-text li .pre table.wikitable td.wikicell .editdate div#page-bar ul.floatleft ul.floatleft li, ul.floatleft li.button2 .editdate ul.floatleft div.button2,.button3,li.button2 .linkbut{}.wiki-edithelp div.code .codelisting .codecaption div.quoteheader div.quotebody .catblock div#sosnav #sosnav ul, #sosmenu ul #sosnav ul li a, #sosmenu ul li a, #sosmenu ul ul li a #sosnav li, #sosmenu li #sosnav li ul, #sosmenu li ul #sosnav li:hover ul, #sosnav li.sfhover ul, #sosmenu li:hover ul, #sosmenu li.sfhover ul #sosnav ul li:hover ul li a, #sosnav ul li.sfhover ul li a, #sosmenu ul li:hover ul li a, #sosmenu ul li.sfhover ul li a #sosmenu ul li:hover ul li:hover a, #sosmenu ul li.sfhover ul li.sfhover a #sosnav li ul li a:hover, #sosnav ul ul li:hover a, #sosnav ul li.sfhover a, #sosnav ul ul li.sfhover a, #sosmenu li ul li a:hover, #sosmenu ul ul li:hover a, #sosmenu ul li.sfhover a, #sosmenu ul ul li.sfhover a div.tocnav #tocnavicons #tocnavaddpage #tocnavlinks #tocnavlinks a ul.toc ul.toc * .clearfix:after .floatlist .floatlist li div.article div.articletopline div.articletitle span.titlea div.articlesubtitle div.articleheading div.articleheadingtext img.topicimage,img.articleimagenofloat,img.articleimage img.articleimagefloat img.articleimage div.articletrailer .wikitopline div.articlebody div.articlesource div.blogheading div.blogtitle div.blogdesc div.bloginfo div.blogtools .blogpost div.posthead .postinfo span.posthead div.posthead h2 div.post div.postbody div.postfooter #post_header .author, #post_header .posted-text #post_header .author #post_header .posted-text body.tiki_forums table.normal div.forumtoolbar td.threadsevenl td.threadsevenr td.threadsoddl td.threadsoddr table.threads td.threadseparator td.forumtoolbar .toolbarlink .forumvotelink table.commentinfo #comzone #comzoneopen span.commentstitle h2.thread-title .postbody-title small #thread-actions .post.odd, .post.odd .postfooter,td.odd .post, .post .postfooter .post .top_post .post .post .author .post .author_info .icons .actions .post .author_post_info_on .post .author_post_info_by .post .author_post_info_by a i .author_posts .commentStyle_headers .author_info .post .content .actions .post .content .actions a .post .postbody .content .post .posted-text, .post .author .post .posted-text .post .posted-text p, .post_preview p .post .posted-text h3 .post .postbody .attachments .post .postbody .attachments img .post .postfooter .actions, .post .postfooter .status .post .postfooter .post .inner>.postfooter .post .contribution .post .avatar .post .avatar img #editpost2 #commentshelp #commentshelp h3 #commentshelp p #commentshelp p small .post-comment-actions .post-comment-actions #watch_thread .post-comment-actions-label .post-comment-actions img .post-comment-yourname .post-comment-setthreadwatch .post_preview .post-new-thread-notice #time_control #time_control small .subcomment div.browsegallery div#browse_image div.showimage td.oddthumb td.eventhumb td.eventhumb img img.athumb #forumpost #forumpostopen #forumpostopen h2 div.dirsite span.dirsitetrail span.dirsitecats table.admin tr td div#page-bar .tabmark .tabmark a .tabmark a:active .tabmark a:hover .tabcontent span#tab1 span#tab2 span#tab3 #content1,#content2,#content3 #content1 #content2 #content3 table.admin div#content1 div.tabcontent div.cbox kbd span.mnu span.pth span.prf span.filename span.button .edit-note .versions .versionav .versionav .button2 .versionav .button2 .linkbut .versionav .highlight .versiontitle div.split .morcego_embedded div#ajaxLoading .tellafriend .highlight_word_0 .highlight_word_1 .highlight_word_2 .highlight_word_3 .highlight_word_4 .navbar .post .postbody .post .postbody-title .post .postbody-title .checkbox .post .postbody-title .title .post .author_post_info .post .author_info .icons .post .author_info .icons .actions .post .postbody .content .post .postbody .attachments .post .postbody .attachments img .post .postfooter .actions, .post .postfooter .status .post .postfooter .status .post .inner>.postfooter .post .contribution .sub_comment .sub_comment_area .forum_actions .actions #comments-search .forum_actions .actions .action .forum_actions .headers .forum_actions .headers .title .forum_actions .headers .infos .thread_pagination .nb_replies .post_preview .post .postbody .signature .mini .openid_url #newtofirefox,#frontmenu #mostpopular .morearticles,.tbsupport .toclevel-1 .toclevel-2 .toclevel-3 .toclevel-4 .toclevel-5 .toclevel-6 .wikitext .wikitext h2 .wikitext>h2:first-child .wikitext h3, .wikitext h4, .wikitext h5 .wikitext h3 a,:link a:visited,:visited a:hover,:link:hover,:visited:hover a:active,:link:active,:link:active #c1c2 #c1c2 #wrapper #c1c2 #wrapper #col1.marginleft #c1c2 #wrapper #col1.marginright{}#col1 .content .marginright #col1 .marginleft .marginright #col1 .marginleft .marginright .showpage .marginright .marginleft .contentwrapper #c1c2 #wrapper #col1 .contentwrapper #c1c2 #col2 #c1c2 #col2 .content #col3 #col3 .content #col3 .content .title #col3 .content * .footerbgtrap .topbar body.mini,#wrap.mini .mini .topbar .botbar #editpageform #editpageform .formerror #c1c2 h1 #c1c2 .titleetc .bodybox .bodybox-inner .actionsbox .action-title .actionsbox ul .actionsbox li .actionsbox li img .actions a:link, .actions a:visited .actions a:hover, .actions a:active .showfor_title .showfor_browser_label ul.showfor_nav ul.showfor_nav li ul.showfor_nav li:before ul.showfor_nav li:first-child:before .showfor_button .showfor_button_on .showfor_label div.showfor_label .showfor_footer .showfor_footer_text .titlebar .wikitext pre div.button2,.button3 .linkbut .linkbut:visited .toc .clearfix2:before #centercolumn .freetaglist a.freetag a.freetag:hover a.freetag_1 a.freetag_1:hover a.freetag_2 a.freetag_2:hover a.freetag_3 a.freetag_3:hover a.freetag_4 a.freetag_4:hover a.freetag_5 a.freetag_5:hover a.freetag_6 a.freetag_6:hover a.freetag_7 a.freetag_7:hover div.freetags_page{}input [name=tag] input [id="tagBox"]:hover table.freetagstable td.freetagstable div.advancedsearchform div.resultspagelinks a.neatlink .current_page a.neatlink.active a.blacklink,a.blacklink:hover div.resultspagelinkstop{}div.searchpage div.searchtitle div.searchtitle span.resultsinfo div.oneresult a.searchresultlink a.blacklink div.searchresults a.neatlink label.polllabel div.categoryinset .categoryinset a div.split .morcego_embedded div#ajaxLoading .tellafriend .highlight_word_0 .highlight_word_1 .highlight_word_2 .highlight_word_3 .highlight_word_4 .navbar .openid_url .current_page .wikitext p div.pollarea div#translation_critical_alert div.thread-solution div.searchform form #advanced label, div.searchform form #advanced select div.searchform form #advanced #advanced-type label, div.searchform form #advanced #advanced-type input div.searchform form #advanced #advanced-type table#author_date_solution td#author_mark_as_solution form tr input form tr td form#editpageform tr form#editpageform tr table tr form table.normal td.heading form table.normal button#login-button .top-notify,.bottom-notify .pagelist-wrapper .pagelist-table .pagelist-title .pagelist-table tr .pagelist-table td .pagelist-table .odd .pagelist-status .pagelist-needs-review,.pagelist-draft,.pagelist-needs-updating .pagelist-translated .pagelist-needs-translation,.pagelist-unknown .pagelist-page .listprogress-progress .listprogress-progress span .listprogress-progress em .listprogress-status #mod-freetags_current input[name=tags] select#switch-language .process-running .top-notify p .screencast-thumbnail .screencast-input-wrapper .screencast-input-label .screencast-player-close .screencast-player-msg .screencast-player-msg:hover .screencast-no-alt .screencast-no-preview .screencast-thumb-text .screencast-thumb-text:hover .screencast-no-preview>.screencast-thumb-text .screencast-no-preview-text #screencast-loader,#picture-loader #screencast-upload-now #screencast-add-another #screencast-player-overlay #screencast-player-window .screencast-content .screencast-content-msg .checkbox-scroll .item-list .protect-email div.search-suggestion span.corrected div.search-refine input.search-refine-query input.search-refine-submit input.search-refine-submit:hover .show-search-tabs input.search-empty-query input.search-empty-submit .content .cbox .cbox-data .normal #editpost2 .findtitle #tiki-listpages-content .normal td .feedbackbox .feedbackbox p .feedbackbox textarea #feedback-options #feedback-options>.feedback-info:first-child .feedback-controls input[type=button] , .feedback-controls input[type=submit] .feedback-controls .feedback-controls img .feedback-controls-complex .feedback-controls-complex input .diffadded .diffdeleted .diffchar .diffbody-content,.diffadded-content,.diffdeleted-content .toclevel-1 .toclevel-2 .toclevel-3 .toclevel-4 .toclevel-5 .toclevel-6 dl dl dd #editpageform table.normal td{}#editpageform .uploaded_images{}#editpageform .uploaded_images li #editpageform .uploaded_images li a #editpageform .uploaded_images li a:hover #editpageform .uploaded_images li a img #editpageform select[name="olpoll"],select[name="poll_template"] .langwatch-select .notif-pad .notif-pad-2 .notif-pad-3 .notif-pad-3 input .notif-row .notif-highlight #col1 div.tocnav
== Troubleshooting information ==
adobe is the only extension i have right now
html body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td table fieldset,img address,caption,cite,code,dfn,em,strong,th,var li caption,th h1,h2,h3,h4,h5,h6 q:before,q:after abbr,acronym sup sub input,textarea,select input,textarea,select{*font-size:100%}legend body table pre,code,kbd,samp,tt body #ft #doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7 #doc2 #doc3 #doc4 .yui-b .yui-b{_position:static}#yui-main .yui-b #yui-main .yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main .yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main .yui-t1 .yui-b .yui-t1 #yui-main .yui-b .yui-t2 .yui-b .yui-t2 #yui-main .yui-b .yui-t3 .yui-b .yui-t3 #yui-main .yui-b .yui-t4 .yui-b .yui-t4 #yui-main .yui-b .yui-t5 .yui-b .yui-t5 #yui-main .yui-b .yui-t6 .yui-b .yui-t6 #yui-main .yui-b .yui-t7 #yui-main .yui-b #yui-main .yui-b .yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u .yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u .yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first .yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf .yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u .yui-gb .yui-u{*margin-left:1.9%;*width:31.9%}.yui-gc div.first,.yui-gd .yui-u .yui-gd div.first .yui-ge div.first,.yui-gf .yui-u .yui-ge .yui-u,.yui-gf div.first .yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first .yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u .yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%}.yui-g .yui-gc div.first,.yui-gd .yui-g .yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%}.yui-g .yui-gb .yui-u{_margin-left:1.0%}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u .yui-gb .yui-gc div.first .yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u .yui-gb .yui-gb .yui-u{_margin-left:.7%}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0}s .yui-gb .yui-gd div.first .yui-g .yui-gd div.first{_width:29.9%}.yui-ge .yui-g .yui-gf .yui-g .yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u .yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first .yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%}.yui-ge div.first .yui-gd .yui-u .yui-ge div.first .yui-gd div.first #bd:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after #bd,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf .yui-overlay,.yui-panel-container .yui-panel-container form .mask .mask.block-scrollbars .masked select,.drag select,.hide-select select{_visibility:hidden}.yui-panel-container select{_visibility:inherit}.hide-scrollbars,.hide-scrollbars * .hide-scrollbars select .show-scrollbars .yui-panel-container.show-scrollbars,.yui-tt.show-scrollbars .yui-panel-container.show-scrollbars .underlay,.yui-tt.show-scrollbars .yui-tt-shadow .yui-panel-container.shadow .underlay.yui-force-redraw .yui-effect-fade .underlay .yui-tt-shadow .yui-skin-sam .mask .yui-skin-sam .yui-panel-container .yui-skin-sam .yui-panel .yui-skin-sam .yui-panel .hd,.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{*zoom:1;*position:relative;border-style:solid;border-width:0 1px;border-color:#808080;margin:0 -1px}.yui-skin-sam .yui-panel .hd .yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft .yui-skin-sam .yui-panel .hd .yui-skin-sam .yui-panel .bd .yui-skin-sam .yui-panel .ft .yui-skin-sam .yui-panel-container.focused .yui-panel .hd{}.yui-skin-sam .container-close .yui-skin-sam .yui-panel-container .underlay .yui-skin-sam .yui-panel-container.matte .yui-skin-sam .yui-panel-container.shadow{_padding:2px 5px 0 3px}.yui-skin-sam .yui-panel-container.shadow .underlay .yui-skin-sam .yui-dialog .ft .yui-skin-sam .yui-dialog .ft .button-group .yui-skin-sam .yui-dialog .ft button.default .yui-skin-sam .yui-dialog .ft span.default .yui-skin-sam .yui-dialog .ft span.default .first-child .yui-skin-sam .yui-dialog .ft span.default button .yui-skin-sam .yui-simple-dialog .bd .yui-icon .yui-skin-sam .yui-simple-dialog .bd span.blckicon .yui-skin-sam .yui-simple-dialog .bd span.alrticon .yui-skin-sam .yui-simple-dialog .bd span.hlpicon .yui-skin-sam .yui-simple-dialog .bd span.infoicon .yui-skin-sam .yui-simple-dialog .bd span.warnicon .yui-skin-sam .yui-simple-dialog .bd span.tipicon .yui-skin-sam .yui-tt .bd{position:relative;top:0;left:0;z-index:1;color:#000;padding:2px 5px;border-color:#D4C237 #A6982B #A6982B #A6982B;border-width:1px;border-style:soSubmitted Crash Reports
Report ID
Date Submitted
bp-6ac76d78-f590-4f9e-8a40-e1b112100617 6/17/2010 6:43 PM
bp-6fe7f0a5-a815-45e3-b0f9-95ad12100617 6/17/2010 6:41 PM -
Problem with doLayout() / validate() / invalidate()
Hi, Java developers!!!
Ok, this is my current situation:
My application is as follows:
....................................Frame
...............................(BorderLayout)
.........................................|
................./----------------+-----------------\
................|.......................|.........................|
............NORTH:...............CENTER:..............SOUTH:
............Canvas.................Panel................TextField
.................................(BorderLayout)
.........................................|
.........................../---------+---------\
..........................|.............................|
....................CENTER:.......................EAST:
......................Panel..........................Panel
................(BorderLayout).............(BorderLayout)
........................|..................................|
.........|..............|............|..............|..............|
.....SOUTH:....CENTER:....EAST:......CENTER:......EAST:
....Scrollbar....Canvas....Scrollbar.....Canvas......Scrollbar
.(Horizontal)................(Vertical)........(X).......(Vertical)
The Canvas component marked as (X) has special code
that makes it's width resizable. In fact, what I did was:
public Dimension getPreferredSize()
Dimension sd;
Dimension cd;
sd = parentFrame.getSize();
cd = new Dimension(super.getPreferredSize());
cd.width = (int)(((double)sd.width) * widthPercent);
return cd;
Here, widthPercent is a global variable that indicates how
wide must be the component, related to the containing
frame's width.
When I change widthPercent, I do the following:
widthPercent = newWidthPercent;
invalidate();
repaint();
Well, it turns out that, when invoked, the component
does NOT change it's width immediately, but until the
next time I >resize< the Frame. I know the code above
is being executed, since the Frame is seen to be redrawing, but the layout does NOT change. I've tested
with almost everything I could:
doLayout();
validate(); invalidate();
getParent().doLayout();
getParent().validate(); getParent().invalidate();
parentFrame.doLayout();
parentFrame.validate(); parentFrame.invalidate();
etc. but it doesn't seem to work!!! No one changes the layout of the components until I resize the window!!!
Any ideas, please?
- Heriberto Delgado
([email protected])Sorry for the long delay. I was just preparing the application for posting. The original one was somewhat large, with a lot of stuff that could hide the true problem. I narrowed it the most I could, while still showing the behavior I mentioned before. Here it is:
(The panel at the right is the resizable one. It's supposed to resize with the black stripe between the
right & left panels, which it does, but it shows up only until the window is resized.)
import java.awt.*;
import java.awt.event.*;
public class MainAppTest extends Frame
class MapViewer extends Canvas
public MapViewer()
super();
setBackground(Color.white);
class SpriteViewer extends Canvas
double widthPercent;
Cursor resizeCursor;
int initDraggedPosX;
Frame parentFrame;
public SpriteViewer(Frame newParentFrame)
super();
setBackground(Color.lightGray);
setFont(new Font("SansSerif",Font.PLAIN,12));
parentFrame = newParentFrame;
widthPercent = 0.2;
resizeCursor = Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR);
enableEvents(MouseEvent.MOUSE_CLICKED |
MouseEvent.MOUSE_MOVED |
MouseEvent.MOUSE_DRAGGED);
public void processMouseEvent(MouseEvent e)
int i,m;
super.processMouseEvent(e);
switch(e.getID())
case MouseEvent.MOUSE_CLICKED:
if(e.getX() < 5)
initDraggedPosX = e.getX();
break;
public void processMouseMotionEvent(MouseEvent e)
Dimension fd;
Dimension cd;
Cursor newCursor;
int newWidth;
double newWidthPercent;
super.processMouseMotionEvent(e);
switch(e.getID())
case MouseEvent.MOUSE_MOVED:
if(e.getX() < 5)
newCursor = resizeCursor;
} else
newCursor = Cursor.getDefaultCursor();
if(!(newCursor.equals(getCursor())))
setCursor(newCursor);
break;
case MouseEvent.MOUSE_DRAGGED:
if(getCursor().equals(resizeCursor))
fd = parentFrame.getSize();
cd = getSize();
newWidth = cd.width + initDraggedPosX - e.getX();
if(fd.width!=0)
newWidthPercent = ((double)newWidth)
/ ((double)fd.width);
if(newWidthPercent<0.05)
newWidthPercent = 0.05;
if(newWidthPercent>0.9)
newWidthPercent = 0.9;
if(widthPercent != newWidthPercent)
widthPercent = newWidthPercent;
parentFrame.invalidate();
parentFrame.validate();
parentFrame.repaint();
break;
public Dimension getPreferredSize()
Dimension sd;
Dimension cd;
sd = parentFrame.getSize();
cd = new Dimension(super.getPreferredSize());
cd.width = (int)(((double)sd.width) * widthPercent);
return cd;
public void paint(Graphics g)
Dimension cd;
cd = getSize();
g.setColor(Color.black);
g.fillRect(0,0,
5,cd.height - 1);
g.setColor(Color.lightGray);
g.fillRect(5,0,
cd.width - 6,cd.height - 1);
MapViewer CurrentMapViewer;
Scrollbar HorizMapScrollbar;
Scrollbar VertMapScrollbar;
SpriteViewer CurrentSpriteViewer;
Scrollbar VertSpriteScrollbar;
Panel StatusBar;
public MainAppTest(String[] args)
super("Test");
AppStart();
public void AppStart()
Class c;
Panel p,p2,p3;
Dimension sd;
GridBagLayout gbl;
GridBagConstraints gbc;
TextField tf;
setLayout(new BorderLayout(0,0));
p = new Panel(new BorderLayout(0,0));
CurrentMapViewer = new MapViewer();
p.add(BorderLayout.CENTER,CurrentMapViewer);
HorizMapScrollbar = new Scrollbar(Scrollbar.HORIZONTAL);
p.add(BorderLayout.SOUTH,HorizMapScrollbar);
VertMapScrollbar = new Scrollbar(Scrollbar.VERTICAL);
p.add(BorderLayout.EAST,VertMapScrollbar);
p2 = new Panel(new BorderLayout(0,0));
CurrentSpriteViewer = new SpriteViewer(this);
p2.add(BorderLayout.CENTER,CurrentSpriteViewer);
VertSpriteScrollbar = new Scrollbar(Scrollbar.VERTICAL);
p2.add(BorderLayout.EAST,VertSpriteScrollbar);
p3 = new Panel(new BorderLayout(0,0));
p3.add(BorderLayout.CENTER,p);
p3.add(BorderLayout.EAST,p2);
add(BorderLayout.CENTER,p3);
StatusBar = new Panel();
StatusBar.setBackground(Color.lightGray);
gbl = new GridBagLayout();
gbc = new GridBagConstraints();
StatusBar.setLayout(gbl);
gbc.weightx = 1;
gbc.weighty = 1;
gbc.insets = new Insets(0,0,0,0);
gbc.fill = GridBagConstraints.BOTH;
gbc.anchor = GridBagConstraints.CENTER;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.gridheight = 1;
tf = new TextField();
gbl.setConstraints(tf,gbc);
StatusBar.add(tf);
add(BorderLayout.SOUTH,StatusBar);
addWindowListener
new WindowAdapter()
public void windowClosing(WindowEvent e)
AppStop();
pack();
sd = getToolkit().getScreenSize();
setSize(sd.width * 8 / 10, sd.height * 8 / 10);
show();
CurrentSpriteViewer.requestFocus();
public void AppStop()
System.exit(0);
public static final void main(String[] args)
new MainAppTest(args); -
How do you add a ScrollBar to a custom window swf panel?
I recently made a tool for flash with the help of JSFL. The panel that was made is a little too large for my screen and I was wondering how to put in a scrollbar for it. Without the ability to scroll down I'm unable to reach certain properties located at the bottom of the panel.
I know the ScrollBar component is for only TextFields, but the ScrollPane is able to be used for other things such as MovieClips and swf files. However, when I tried to use the ScrollPane all I get is a blank screen. Any suggestions?Thanks for the reply, it's just a panel that's being used in my Flash CS6. I'm using the Extension Manager to package it up using an mxi file to create a zxp which installs is to Flash. In order to publish the swf I'm just doing Control > Test Movie > Test, there's no html file being output.
-
Photoshop panel scrollbars and size
Hi,
If you take a look at some of the included Photoshop panels, like the kuler panel, it has a minimum size you can scale the panel. When you do this with a panel you created in Flex, even with the samples that are included with the developer guide, you can always scale the panel down as much as you want and the panel gets the flesh scrollbars.
How can I make a panel to acts more like the kuler panel and the built in photoshop panels? Is there a way in Flex to tall the photoshop panel what is the minimum size?
Thanks...Hi,
If you take a look at some of the included Photoshop panels, like the kuler panel, it has a minimum size you can scale the panel. When you do this with a panel you created in Flex, even with the samples that are included with the developer guide, you can always scale the panel down as much as you want and the panel gets the flesh scrollbars.
How can I make a panel to acts more like the kuler panel and the built in photoshop panels? Is there a way in Flex to tall the photoshop panel what is the minimum size?
Thanks... -
More GNOME 3 tweaks - expanding the panel, changing scrollbars
In most of my applications, the scrollbars are massive white things, and the handles are relatively big white dots. In others (like Firefox and Exaile), the scrollbars are really skinny and blue, and the handles are clusters of tiny dots. It looks more like clearlooks than Adwaita. Is the inconsistency because some of these apps only use GTK2? Which .css files do I need to edit to get consistency? I prefer the white bars over the blue ones, but not so wide.
http://i.imgur.com/oYoGQ.png
Here it looks like Nautilus is using Adwaita while Exaile is stuck on clearlooks.
Similarly, can I edit some theme file to eliminate the monstrous resize handle that appears in the bottom right? It's a real eyesore, especially on top of the (buggily solid black) terminal windows.
Finally, I've seen some screenshots where the activities panel... thinger has rows of icons and additional things like, "Places," and "Recent documents." Is it possible to add things like that to the panel? Or was that something only in beta versions? I think I'd find gnome-shell a lot more useful if I had access to that sort of thing from the activities menu.mschmoelzer wrote:
The scrollbar thing is an upstream bug: https://bugzilla.gnome.org/show_bug.cgi?id=646556
The Adwaita GTK2 theme seems incomplete (to me it looks exactly like the Clearlooks theme...), so the only possibility is setting a different GTK2 theme.
I think it's currently impossible to have GTK2 and GTK3 apps have the same appearance
Ah, I kind of solved that part! From what I'm seeing, it looks like some apps use GTK2 and some GTK3, so your theme needs to have, well, themes, for both. Adwaita just uses a very minor alteration of Clearlooks for it's GTK2. I've switched to Hope:
http://grvrulz.deviantart.com/art/Hope-gtk3-206207315
Which is very consistent and IMHO better than Adwaita, anyway. Still haven't figured out where that big'ol resize handle is coming from, though.
Oh, and, this is what the panel looked like at one time
http://fc09.deviantart.net/fs71/i/2010/ … 2vktxy.jpg
It's themed, but you get the point. Way more useful. Really hope some clever extension creator figures out a way to bring that back. -
How to remove sub panel scrollbars with LabVIEW 2009-SP1?
I did a search and found this thread on the subject: http://forums.ni.com/t5/LabVIEW/subpanel-scollbars-in-labview-8-0/m-p/284503/highlight/false#M149983
I double checked that that the horizontal and vertical scrollbars were not selected in the Customize Window Appearance and they were not selected as shown in the image below. You can see the nasty scrollbars in the front panel in the image at the bottom. Of couse, since the code / sw cannot be shown, it has been painted over but you can still see the scrollbars along the frame of the sub-panel.
Customized Window Appearance settings:
Scrollbars are seen at the bottom & right of the sub panel frame
Solved!
Go to Solution.
Attachments:
WIndowAppearance.PNG 22 KB
scrollbars.PNG 33 KBJust ran into this myself. (To complicate matters, forgot that one of my debug tools turns the scroll bars back on upon program exit.) "Off While Running" works, too. You can insert this code onto the diagram of any VI that will be called in a subpanel.
Thanks for the tip.
Certified LabVIEW Architect
Wait for Flag / Set Flag
Separate Views from Implementation for Strict Type Defs -
Adding scrollbars to a panel containing a buffered image
Frame Class:
package HeatMap;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridBagLayout;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.SwingUtilities;
class HeatMapFrame extends JFrame
BufferedImage img;
HeatMapFrame(BufferedImage img)
super("Gene Expression Profile Heatmap");
this.img = img;
HeatMapPane mapPanel = new HeatMapPane(img);
JScrollPane scrollPane = new JScrollPane(mapPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS );
scrollPane.setPreferredSize(new Dimension(640,480));
add(scrollPane,BorderLayout.CENTER);
setSize(640,480);
setLocation(getWidth()/4,getHeight()/4);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
Panel Class:
package HeatMap;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;
public class HeatMapPane extends JPanel
BufferedImage img;
HeatMapPane(BufferedImage img)
this.img = img;
//setSize(640,480);
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// Draw image centered.
//int x = (getWidth() - img.getWidth())/2;
//int y = (getHeight() - img.getHeight())/2;
g.drawImage(img, 0, 0, this);
}I`m drawing the BufferedImage to a JPanel and addig the JPanel to a JScrollPane. The problem is that the scrollbars are visible but not active. Scrolling is not working. Can somebody tell me why? Thanks for any advice.Since your HeatMapPane does not declare a preferred size, I'm guessing(1) it is assigned a size of 0x0.
1) I would do more than guess, if you had posted an SSCCE. For an SSCCE to do with images, you might hot-link to some of the images available at my [media page|http://pscode.org/media/#image], or generate an image within the source.
Maybe you are looking for
-
No images in Safari 5.1.2
I'm running OS X 10.7.2. I was doing some housekeeping & reorganizing on my iMac and in the process reset Safari for the first time to clean out all the garbage. I empty the cache and tweak things regularly, however this was the first itme I have r
-
Using javascript to make a text box invisible by clicking a radiobutton
hi my radiobuttons are for a persons title eg Mr Miss Mrs Ms and value 5 is for other. when i click other i want a text box to appear that a user can write in, and if the user changes their mind after writing in the box i want the text box to disappe
-
Creating a vertical dropdown menu that displays inline
I would like to change how my dropdown menu displays. First I'd like for it to dropdown directly underneath its menu item and in the process move the other links down. And remain visible until it is clicked again, thereby shifting other links back
-
I just have to QuickTime player and somehow the last movies I synched from my iPhone (3Gs) were done in .MOV instead of .wmp format. I haven't had an issue with this before. It won't allow me to export and I can copy, but it will not paste into anot
-
How to avoid Automatic Rounding of number column?
In 10g 10.2.0.4 database I am seeing the below automatic rounding issue. How can I remove this automatic rounding. create table test (a number(28, 12)) insert into test values (7051743.889999999665) select * from test Result: 7051743.89 But I want th