codice:
import java.awt.*;
import javax.swing.*;
public class TestScrollBar
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run(){
try{
new TestScrollBar();
}
catch(Exception e){}
}
});
}
public TestScrollBar()
{JFrame f=new JFrame("Test ScrollBar");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTextArea textArea=new JTextArea(20,20);
JScrollPane scroll=new JScrollPane(textArea);
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);JScrollBar vsb=scroll.getVerticalScrollBar();
JScrollBar hsb=scroll.getHorizontalScrollBar();
vsb.setUI(new ScrollBar());
hsb.setUI(new ScrollBar());
f.getContentPane().add(scroll,BorderLayout.CENTER);f.pack();
f.setLocationRelativeTo(null);f.setVisible(true);
}
}
codice:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import javax.swing.plaf.basic.BasicScrollBarUI;
import javax.swing.*;
public class ScrollBar extends BasicScrollBarUI
{
Image imageThumb,imageTrack;
JButton decreaseButton,increaseButton;
public ScrollBar()
{
imageThumb=createImage(16,16,new Color(192,192,192));
imageTrack=createImage(16,16,new Color(240,240,240));
}
protected void paintThumb(Graphics g, JComponent c, Rectangle r)
{
((Graphics2D)g).drawImage(imageThumb,r.x,r.y,r.width,r.height,null);
}
protected void paintTrack(Graphics g, JComponent c, Rectangle r)
{
((Graphics2D)g).drawImage(imageTrack,r.x,r.y,r.width,r.height,null);
}
protected JButton createDecreaseButton(int orientation)
{
if(orientation==NORTH)return createButton("NorthArrow.png",m);
else return createButton("WestArrow.png",m);
}
protected JButton createIncreaseButton(int orientation)
{
if(orientation==SOUTH)return createButton("SouthArrow.png",m);
else return createButton("EastArrow.png",m);
}
public static JButton createButton(String src,MouseListener m)
{
JButton b=new JButton(new ImageIcon(ClassLoader.getSystemResource(src)));
b.setPreferredSize(new Dimension(15,15));
b.setMargin(new Insets(0,0,0,0));
b.setBorder(BorderFactory.createLineBorder(new Color(240,240,240),1));
b.setOpaque(false);
b.addMouseListener(m);
return b;
}
static Image createImage(int w,int h,Color c)
{
BufferedImage b=new BufferedImage(w,h,BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d=b.createGraphics();
g2d.setPaint(c);
g2d.fillRect(0,0,w,h);
g2d.dispose();
return b;
}
MouseListener m=new MouseListener()
{
public void mousePressed(MouseEvent e)
{
((JButton)e.getComponent()).setBorder(BorderFactory.createLineBorder(Color.GRAY,1));
}
public void mouseReleased(MouseEvent e)
{
((JButton)e.getComponent()).setBorder(BorderFactory.createLineBorder(new Color(240,240,240),1));
}
public void mouseClicked(MouseEvent e){}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
};
}