hola a todos a veces al programar en java,
especialmente con swing se nos hace muy monotono
tener que utilizar los clasicos JPanel
Que te pareceria poder crear los siguientes Jpanel
Bien elegantes no el codigo para crearlo esta aqui
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.LinearGradientPaint;
import java.awt.Rectangle;
import javax.swing.JPanel;
public class JPanelGradient extends JPanel{
private Color color1 = new Color(0x666f7f);
private Color color2 = new Color(0x262d3d);
private float x1=0;
private float y1=0;
private float x2=getWidth();
private float y2=getHeight();
public JPanelGradient() {
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
Rectangle clip = g2.getClipBounds();
float x=getWidth();
float y=getHeight();
g2.setPaint(new GradientPaint(0.0f, 0.0f, color1.darker(),
0.0f, getHeight(), color2.darker()));
g2.fillRect(clip.x, clip.y, clip.width, clip.height);
}
public Color getColor1() {
return color1;
}
public void setColor1(Color color1) {
this.color1 = color1;
}
public Color getColor2() {
return color2;
}
public void setColor2(Color color2) {
this.color2 = color2;
}
}
Hola, probé lo que pusiste en esta entrada y funciona muy bien en un JPanel.
Queria hacer lo mismo pero con un JTextField y tambien funciona, pero el problema es que no hay manera de pasarle un texto y que lo dibuje, es decir cuando hago un
MiTextField miTextField = new MiTextField();
miTextField.setText(«Hola mundo»);
el texto no se muestra, sin embargo el fondo coloreado si, sabes que se puede hacer en este caso ? la clase MiTextField es la siguiente:
package org.miscomponentes;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import javax.swing.JPanel;
/**
*
* @author metalklesk
*/
public class MiTextField extends JTextField {
private Color color1 = new Color(102, 255, 102);
private Color color2 = new Color(51, 102, 255);
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
Rectangle clip = g2.getClipBounds();
float x=getWidth();
float y=getHeight();
g2.setPaint(new GradientPaint(0.0f, 0.0f, color1.darker(),
0.0f, getHeight(), color2.darker()));
g2.fillRect(clip.x, clip.y, clip.width, clip.height);
}
}
saludos !!!!
Hola Daniel aquí te dejo la solución
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Rectangle;
import javax.swing.JTextField;
/**
*
* @author metalklesk
*/
public class MiTextField extends JTextField {
private Color color1 = new Color(102, 255, 102);
private Color color2 = new Color(51, 102, 255);
public MiTextField() {
setOpaque(false);
setText(«Hola como estas»);
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g.create();
//Guardar las características esenciales del JTextfield
Paint oldPaint = g2.getPaint();
Rectangle clip = g2.getClipBounds();
float x=getWidth();
float y=getHeight();
g2.setPaint(new GradientPaint(0.0f, 0.0f, color1.darker(),
0.0f, getHeight(), color2.darker()));
g2.fillRect(clip.x, clip.y, clip.width, clip.height);
setForeground(Color.WHITE);
//Restaurar características del JTextfield guardadas anteriormente
g2.setPaint(oldPaint);
super.paintComponent(g);
}
}
saludos
Hola soy nuevo en programacion en java y me interesa lo de estos JPanel
pero como hago pa correrlos – me dice que falta un metodo Main
tengo que crearlo o crear un JFrame
como hago
Esta muy beuno lo del panel, muchas gracias. Pero sin embargo tengo una pregunta es que estoy haciendo un proyecto y no encuentro como poner el GridBagLayout al panel no me lo acepta que hago.
Aqui les dejo el codigo:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
public class InterfazContraseña extends JFrame{
private JLabel nombre,contra,titulo;
private JTextField nom;
private JPasswordField cont;
private Container contenedor;
private NuevoJPanel panel;
public InterfazContraseña(){
super(«*Caja Chica*»);
contenedor = getContentPane();
GridBagConstraints constraints = new GridBagConstraints();
panel=new NuevoJPanel();//como ponerle gridbaglayout
titulo=new JLabel(«Caja Chica»,SwingConstants.CENTER);
titulo.setFont(new Font(«Blackadder ITC», Font.BOLD,35));
titulo.setBackground(new Color(255,255,255));
constraints.gridx = 3;
constraints.gridy = 5;
constraints.gridwidth = 3;
constraints.gridheight = 3;
constraints.fill = GridBagConstraints.BOTH;
constraints.anchor = GridBagConstraints.CENTER;
panel.add(titulo,constraints);
constraints.fill = GridBagConstraints.NONE;
contenedor.add(panel);
setSize(800,600);
setVisible(true);
setLocationRelativeTo(null);
}
public static void main(String args[]){
InterfazContraseña n=new InterfazContraseña();
n.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class NuevoJPanel extends javax.swing.JPanel
{
private Color color1 = new Color(255,255,255);
private Color color2 = new Color(95,95,95);
protected void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g.create();
Rectangle clip = g2.getClipBounds();
float x=getWidth();
float y=getHeight();
g2.setPaint(new GradientPaint(0.0f, 0.0f, color1.darker(),
0.0f, getHeight(), color2.darker()));
g2.fillRect(clip.x, clip.y, clip.width, clip.height);
}
//Métodos set y get que nos permiten modificar los colores
public Color getColor1() {return color1;}
public void setColor1(Color color1) {this.color1 = color1;}
public Color getColor2() {return color2;}
public void setColor2(Color color2){this.color2 = color2;}
}
Ya lo resolvi de todos modos muchas gracias.
Solo tenia que escribir esto:
panel.setLayout(new GridBagLayout());
me gustaria seber como haces esos botones con colores degradados e iluminaciones espero me respondas lo que yo quiero hacer es alo como esto
el video lo hice yo el color de ese boton lo modifique en photoshop pero en si eso lo quisiera hacer en netbeans respondeme a ivanmauricio_gomez@hotmail.com
GRACIAS