|
RE: custom border: msg#00167java.ulc.devel
Hi, It is indeed possible to create a custom border. Please see the snippet at the end of this mail. The snippet is meant for ULC 6.1. Moreover, please refer to ULC 6.1's ULC Extension Guide before you implement your own extension. I hope this helps. Thanks and regards, Janak PS: Kindly subscribe and post to ulc-developer@xxxxxxxxxx -----Original Message----- From: ulc-news-admin@xxxxxxxxxxxxxxx [mailto:ulc-news-admin@xxxxxxxxxxxxxxx]On Behalf Of bbroschinsky@xxxxxxxxx Sent: Dienstag, 25. Juli 2006 17:22 To: ulc-news@xxxxxxxxxxxxxxx Subject: custom border Hi all, Is it possible to create custom borders in ulc by extending ULCAbstract border. I have a ULCTable and I have used a custom cell renderer to draw borders around multiple cells using ULCMatteBorder, but I would like to specify a custom color for the top, left, right, and bottom of the border. Thanks for your help, ---------------------------------- import com.ulcjava.base.application.AbstractApplication; import com.ulcjava.base.application.ULCBoxPane; import com.ulcjava.base.application.ULCButton; import com.ulcjava.base.application.ULCFrame; import com.ulcjava.base.application.border.ULCAbstractBorder; import com.ulcjava.base.application.util.Color; import com.ulcjava.base.client.border.UIAbstractBorder; import com.ulcjava.base.development.DevelopmentRunner; import javax.swing.border.EmptyBorder; import java.awt.Component; import java.awt.Graphics; public class CustomBorderSnippet extends AbstractApplication { public void start() { ULCButton button = new ULCButton("Button"); button.setBorder(new ULCMyBorder(Color.red, Color.green, Color.blue, Color.yellow)); ULCBoxPane box = new ULCBoxPane(); box.add(ULCBoxPane.BOX_CENTER_CENTER, button); ULCFrame frame = new ULCFrame("CustomBorderSnippet"); frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE); frame.add(box); frame.setSize(200, 200); frame.setVisible(true); } public static void main(String[] args) { DevelopmentRunner.setApplicationClass(CustomBorderSnippet.class); DevelopmentRunner.main(args); } public static class ULCMyBorder extends ULCAbstractBorder { private Color topColor, leftColor, bottomColor, rightColor; public ULCMyBorder(Color t, Color l, Color b, Color r) { topColor = t; leftColor = l; bottomColor = b; rightColor = r; } protected String typeString() { return UIMyBorder.class.getName(); } protected void uploadStateUI() { super.uploadStateUI(); setStateUI("topColor", topColor); setStateUI("leftColor", leftColor); setStateUI("bottomColor", bottomColor); setStateUI("rightColor", rightColor); } } public static class UIMyBorder extends UIAbstractBorder { protected Object createBasicObject(Object[] arguments) { return new MyBorder(3, 3, 3, 3); } } public static class MyBorder extends EmptyBorder { public MyBorder(int top, int left, int bottom, int right) { super(top, left, bottom, right); } private java.awt.Color topColor, leftColor, bottomColor, rightColor; public void setTopColor(java.awt.Color topColor) { this.topColor = topColor; } public void setLeftColor(java.awt.Color leftColor) { this.leftColor = leftColor; } public void setBottomColor(java.awt.Color bottomColor) { this.bottomColor = bottomColor; } public void setRightColor(java.awt.Color rightColor) { this.rightColor = rightColor; } /** * Paints the border. */ public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) { java.awt.Insets insets = getBorderInsets(c); java.awt.Color oldColor = g.getColor(); g.translate(x, y); g.setColor(topColor); g.fillRect(0, 0, width - insets.right, insets.top); g.setColor(leftColor); g.fillRect(0, insets.top, insets.left, height - insets.top); g.setColor(bottomColor); g.fillRect(insets.left, height - insets.bottom, width - insets.left, insets.bottom); g.setColor(rightColor); g.fillRect(width - insets.right, 0, insets.right, height - insets.bottom); g.translate(-x, -y); g.setColor(oldColor); } } }
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | RE: ClientContext.storeFile idiosyncrasies, Janak Mulani |
|---|---|
| Next by Date: | RE: getCellEditor(int row, int col), Janak Mulani |
| Previous by Thread: | Is it possible to get hold of the underlying Swing table from ULCTable?, Behera, Prasanta Kumar |
| Next by Thread: | How to pass complex object type arguments to JNLP Client, rambabu somu |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |