Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I was actually working in a JFrame extended class with transluscent Gradients in JFrame</p> <pre><code>import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics; import java.awt.GraphicsConfiguration; import java.awt.Rectangle; import javax.swing.JFrame; import javax.swing.JLayeredPane; import javax.swing.JPanel; import javax.swing.JRootPane; public class JFrameGradient extends JFrame { private static final long serialVersionUID = 7565267933439533086L; private Color initialColor; private Color finalColor; public static final int VERTICAL = 0; public static final int HORIZONTAL = 1; private int orientation = VERTICAL; private int MAX_WIDTH = 1; private int MAX_HEIGHT = 1; private int xInitial = 0; private int xFinal = 0; private int yInitial = 0; private int yFinal = 0; private int initialRedComponent; private int initialGreenComponent; private int initialBlueComponent; private int finalRedComponent; private int finalGreenComponent; private int finalBlueComponent; private int delta = 1; private String title; private GraphicsConfiguration gc; private JFrame frame; private Graphics g; private double transparency; private JPanel gradientPane = new JPanel(true); private boolean isColorChanged = false; public JFrameGradient( Color initialColor, Color finalColor , double transparency ) { super(); this.frame = this; setTransparency(transparency); initClass(); initColor(initialColor, finalColor); } public JFrameGradient( String title , Color initialColor, Color finalColor , double transparency) { super(title); this.title = title; setTransparency(transparency); initClass(); initColor(initialColor, finalColor); } public JFrameGradient( GraphicsConfiguration gc , Color initialColor, Color finalColor , double transparency) { super(gc); this.setGc(gc); setTransparency(transparency); initClass(); initColor(initialColor, finalColor); } public JFrameGradient( GraphicsConfiguration gc , String title , Color initialColor, Color finalColor , double transparency) { super( title , gc ); this.title = title; this.setGc(gc); setTransparency(transparency); initClass(); initColor(initialColor, finalColor); } public JFrameGradient( double transparency) { this( Color.black , Color.white , transparency); } public JFrameGradient(String title , double transparency) { this( title , Color.black , Color.white , transparency); } public JFrameGradient( GraphicsConfiguration gc , double transparency) { this( gc , Color.black , Color.white , transparency); } public JFrameGradient( GraphicsConfiguration gc , String title , double transparency) { this( gc , title , Color.black , Color.white , transparency); } public JFrameGradient() { this( Color.black , Color.white , 1); } public JFrameGradient(String title) { this( title , Color.black , Color.white , 1); } public JFrameGradient( GraphicsConfiguration gc) { this( gc , Color.black , Color.white , 1); } public JFrameGradient( GraphicsConfiguration gc , String title) { this( gc , title , Color.black , Color.white , 1); } public Color getInitialColor() { return initialColor; } public Color getFinalColor() { return finalColor; } public void setInitialColor(Color initialColor) { this.initialColor = initialColor; isColorChanged = true; if(isVisible()) { repaint(); } } public void setFinalColor(Color finalColor) { this.finalColor = finalColor; isColorChanged = true; if(isVisible()) { repaint(); } } public String getTitle() { return title; } public double getTransparency() { return transparency; } public void setTransparency(double transparency) { if( ( transparency &gt;= 0.0) &amp;&amp; (transparency &lt;= 1.0) ) { this.transparency = transparency; } else { this.transparency = 1.0; } } /** * @return the gc */ public GraphicsConfiguration getGc() { return gc; } /** * @param gc the gc to set */ private void setGc(GraphicsConfiguration gc) { this.gc = gc; } public int getOrientation() { return orientation; } public void setOrientation(int orientation) { this.orientation = orientation; if( isVisible()) { repaint(); } } private void initColor(Color initialColor, Color finalColor) { this.initialColor = initialColor; this.finalColor = finalColor; this.initialRedComponent = initialColor.getRed(); this.initialGreenComponent = initialColor.getGreen(); this.initialBlueComponent = initialColor.getBlue(); this.finalRedComponent = finalColor.getRed(); this.finalGreenComponent = finalColor.getGreen(); this.finalBlueComponent = finalColor.getBlue(); } private void initClass() { if( this != null) { frame = this; frame.add(gradientPane); frame.pack(); } } @Override public void paint(Graphics g) { super.paint(g); paintGradient(g); Rectangle mask = null; for( Component c : getComponents() ) { if( c instanceof JRootPane ) { JRootPane rootPane = (JRootPane) c; rootPane.setDoubleBuffered(true); for( Component cRootPane : rootPane.getComponents()) { if( cRootPane instanceof JLayeredPane) { JLayeredPane cLayerPanels = (JLayeredPane) cRootPane; cLayerPanels.setDoubleBuffered(true); for( Component cLayerPanel : cLayerPanels.getComponents() ) { if( cLayerPanel instanceof JPanel) { JPanel cPanels = (JPanel) cLayerPanel; cPanels.setDoubleBuffered(true); for( Component cPanel : cPanels.getComponents() ) { if( cPanel instanceof JPanel) { JPanel cPanels2 = (JPanel) cPanel; cPanels2.setDoubleBuffered(true); mask = frame.getBounds(); for( Component cPanel2 : cPanels2.getComponents() ) { mask.union(cPanel2.getBounds()); cPanel2.paint(cPanel2.getGraphics()); } } } } } } } } } g.setClip(mask); } private void paintGradient(Graphics g) { if( isColorChanged == true) { initColor(initialColor, finalColor); isColorChanged = false; } if ( orientation == VERTICAL) { if ( this.getWidth() != 0 ) { MAX_WIDTH = this.getWidth(); } if ( this.getHeight() != 0) { MAX_HEIGHT = this.getHeight(); xFinal = MAX_WIDTH; delta = MAX_HEIGHT; } } else if( orientation == HORIZONTAL ) { if ( this.getHeight() != 0 ) { MAX_HEIGHT = this.getHeight(); } if ( this.getWidth() != 0) { MAX_WIDTH = this.getWidth(); yFinal = MAX_HEIGHT; delta = MAX_WIDTH; } } if ( (this.initialColor != null ) &amp;&amp; (this.finalColor != null) ) { if ( delta == 0) { delta = 1; } if( orientation == VERTICAL) { for( int n = 0 ; n &lt; MAX_HEIGHT ; n++) { calculateColor(g, n); g.drawLine(xInitial, n, xFinal, n); } } else if (orientation == HORIZONTAL) { for( int n = 0 ; n &lt; MAX_WIDTH ; n++) { calculateColor(g, n); g.drawLine(n , yInitial, n , yFinal); delta = Math.max( MAX_HEIGHT , MAX_WIDTH); } } } } private void calculateColor(Graphics g, int n) { int redComponent = 0; int greenComponent = 0; int blueComponent = 0; redComponent = interpolateComponent(n, initialRedComponent, finalRedComponent, delta); greenComponent = interpolateComponent(n, initialGreenComponent, finalGreenComponent, delta); blueComponent = interpolateComponent(n, initialBlueComponent, finalBlueComponent, delta); if( redComponent &gt; 255) { redComponent = 255; } else if ( redComponent &lt; 0) { redComponent = 0; } if( greenComponent &gt; 255) { greenComponent = 255; } else if ( greenComponent &lt; 0) { greenComponent = 0; } if( redComponent &gt; 255) { blueComponent = 255; } else if ( redComponent &lt; 0) { blueComponent = 0; } g.setColor( new Color(redComponent , greenComponent , blueComponent , (int) (255 * transparency) )); } private int interpolateComponent( int x , int xInit , int xFinal , int delta ) { int returnValue = 0 ; if ( xInit &lt; xFinal ) { double slope = (xFinal - xInit) / (double) delta ; returnValue = (int) ( xInit + slope * x ); } else if( xFinal &lt; xInit ) { double slope = (xInit - xFinal) / (double) delta ; returnValue = (int) ( xInit - slope * x ); } else { returnValue = xInit; } return returnValue; } @Override public void setVisible(boolean aFlag) { if (aFlag == true) { g = gradientPane.getGraphics(); paint(g); frame.pack(); } super.setVisible(aFlag); } public void setPreferredSize(int width, int height) { setPreferredSize(new Dimension(width, height)); } </code></pre> <p>}</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload