menu_bar = new JMenuBar(){ private final TexturePaint imagen = Crear_cuadriculas(); @Override protected void paintComponent(Graphics g) { super.paintComponent(g); //dibujo la imagen Graphics2D g2 = (Graphics2D)g; g2.setPaint(imagen); //en rectangulos,obtengo las dimensioones del menubar g2.fillRect(0, 0, getWidth(), getHeight()); } };La función cuadricula es la encargada de crear las cuadriculas con su respectiva dimensión es decir el mismo tamaño de cada cuadro con una separación.
private TexturePaint Crear_cuadriculas() { int cuadro = 4;//tamaño de las cuadriculas, o recuadros int dimension = cuadro*cuadro; BufferedImage imagen = new BufferedImage(dimension,dimension,BufferedImage.TYPE_4BYTE_ABGR); Graphics2D g2 = imagen.createGraphics(); g2.setPaint(new Color(100,150,150,50)); g2.fillRect(0,0,dimension,dimension); for(int i=0;i*cuadrodimension;i++) { for(int j=0;j*cuadrodimension;j++) { if((i+j)%2==0) g2.fillRect(i*cuadro, j*cuadro, cuadro, cuadro); } } g2.dispose(); return new TexturePaint(imagen, new Rectangle(0,0,dimension,dimension)); }
Attomey Technology Insurance Degree Fashion and Design Lawyer Mortgage Loans Bolsa Loans And Donation Hosting Hoteles Credit Software Tecnología Leyes y abogados Online Making Money Conference Call Cómo hacer dinero en línea Mesothelioma Law Firm Salud Online casino Recovery Donate Donar coche a la caridad California domains Treatment Web Hosting and Domains Claim Trading universities Donate Car for Tax Credit Transfer Structures Annuity Settlement Executive MBA ranking hybrid Cars Gas/Electricity Toys for children Commodities Classes Rehab Cord Blood Registro de Dominios baratos Hosting Condominiums Web Hosting y Dominios Donate Your Car for Kids Fotografía digital Los préstamos y donaciones Moda y Diseño online
que tal amigo he hecho etsoy y me funciona, pero que pasa con los jmenuitems esos no cambian siguen igual, alguna manera de cambiarlos tambien
ResponderEliminarClaro Jose puedes hacer lo mismo que con el JMenuBar crear una clase interna de esta manera
ResponderEliminaritems=new JMenuIten(){
rivate final TexturePaint imagen = Crear_cuadriculas();
@Override protected void paintComponent(Graphics g) {
super.paintComponent(g);
//dibujo la imagen
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(imagen);
//en rectangulos,obtengo las dimensioones del menubar
g2.fillRect(0, 0, getWidth(), getHeight());
}
});
eso te dene de funcionar si tienes algun problema me avisas :)
lo intente de manera parecida en vez de crear una clase interna, creo una externa para poder instanciarla desde otras, el problema es que mis JMenuItem tiene un parametro:
ResponderEliminarnuevoEmpleado =new ItemsPersonales("Nuevo Empleado");
modificaEmpleado =new ItemsPersonales("Modifica Empleado");
eliminaEmpleado =new ItemsPersonales("Elimina Empleados");
Por lo tanto no me reconoce el constructor quise crear otro contructor pero no me estable el texto , la imagen de fondo ya le dibuja pero el texto no
public ItemsPersonales(String nombre)
{
this.nombre=nombre;
}
Me imagino que se ha tener que sobreescribir el metodo que se encarga de eso pero no se cual es??.
alguna idea ?
Te debería de funcionar por que basicamente lo que se hace es pintar el objeto con la clase Graphics2D entonces en tu clase externa debes de tener lo siguiente
Eliminarclass ItemsPersonales extends JMenuItem {
public ItemsPersonales (String txt){
this.setText(txt);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
//dibujo la imagen
TexturePaint imagen = Crear_cuadriculas();
Graphics2D g2 = (Graphics2D)g;
g2.setPaint(imagen);
//en rectangulos,obtengo las dimensioones del menubar
g2.fillRect(0, 0, getWidth(), getHeight());
}
private TexturePaint Crear_cuadriculas() {
int cuadro = 4;//tamaño de las cuadriculas, o recuadros
int dimension = cuadro*cuadro;
BufferedImage imagen = new BufferedImage(dimension,dimension,BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2 = imagen.createGraphics();
g2.setPaint(new Color(100,150,150,50));
g2.fillRect(0,0,dimension,dimension);
for(int i=0;i*cuadro<dimension;i++) {
for(int j=0;j*cuadro<dimension;j++) {
if((i+j)%2==0) g2.fillRect(i*cuadro, j*cuadro, cuadro, cuadro);
}
}
g2.dispose();
return new TexturePaint(imagen, new Rectangle(0,0,dimension,dimension));
}
}
me imagino que tienes que tener algo asi en tu clase externa??
aaaaaaaaaaaaaaaaaa lo que pasa es que yo primero creaba una variable de tipo string,
ResponderEliminarluego esa variable la asociaba a una que recibia el constructor y el set text no sabia donde ponerlo habia primero lo puse dentro de texturepaint , luego en paintcomponents
String txt;
public ItemsPersonales(String txt)
{
this.txt=txt;
}
pues muchas gracias se ven de lujo las barras , en verdad que esto es lo que deberian enseñerle a uno en la escuela , gracias , gracias por ese tiempo que te dedicaste a ayudarme.
Un saludo desde Oaxaca,Mexico y feliz año
Gracias a ti por visitar mi blog amigo y la verdad esto no te van a enseñar a la escuela ya depende de ti por seguir aprendiendo y investigar cualquier duda que tengas NADA ES IMPOSIBLE siempre que te lo propongas y feliz año para ti :)
Eliminar