Java - Acceder al toolbar desde una ventana hijo

 
Vista:

Acceder al toolbar desde una ventana hijo

Publicado por lozano (23 intervenciones) el 02/06/2015 07:03:58
Saludos Fraternos a la Comunidad JAVA

Estimados amigos en mi ventana MDI a parte del menu también he agregado un jToolBar y este tienes botones, por ejemplo el boton btnCatalogo y por defecto esta activo

Entonces. como hago para desactivar el boton btnCatalogo al momento de Activar la ventana Catalogo.

La ventana Catalogo es una jInternalFrame (ventana hija), deseo desactivar el boton btnCatalogo que esta en el jToolBar
desde la ventana Catalogo (ventana hija).

GRACIAS por su tiempo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Acceder al toolbar desde una ventana hijo

Publicado por German (1 intervención) el 02/06/2015 17:39:24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Hola.
Lozano, estuve haciendo un ejemplo sencillo, para que veas como funciona los JInternalFrame y JButton
Si quieres deshabilitar un JButton de un JToolbar se hace muy similar, es mas no cambia.
Saludos...='/img/emoticons/cup.gif' width='22' height='22' border='0' />
 
//Clase principal Main
import static javax.swing.JFrame.EXIT_ON_CLOSE;
/**
 * @author Desconocido
 *
 */
public class CreandoElescritorio {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
       ElInterno interno = new ElInterno();
       interno.setVisible(true);
       interno.setSize(700, 600);
       interno.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
 
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//Clase panel degradado
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.io.Serializable;
 
import javax.swing.JPanel;
 
/**
 * @author Desconocido
 *
 */
public final class ElDegradado extends JPanel implements Serializable {
 
	@Override
	protected void paintComponent(Graphics g) {
 
		Graphics2D g2 = (Graphics2D) g.create();
		Rectangle clip = g2.getClipBounds();
		x = getWidth();
		y = getHeight();
		g2.setPaint(new GradientPaint(0.0f, 0.0f, color1, getHeight(), y,
				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;
	}
 
	/**
	 * 
	 */
	private static final long serialVersionUID = 1536442705382255739L;
	private Color color1 = new Color(255, 255, 255);
	private Color color2 = new Color(0, 0, 0);
	private float x = 0;
	private float y = 0;
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
//Clase con los eventos y disposiciones FlowLayout();
import static java.awt.BorderLayout.CENTER;
 
 
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.beans.PropertyVetoException;
import java.io.Serializable;
 
 
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import static javax.swing.JOptionPane.INFORMATION_MESSAGE;
import static javax.swing.JOptionPane.showInternalMessageDialog;
 
/**
 * 
 */
 
/**
 * @author Desconocido
 *
 */
@SuppressWarnings("unused")
public class ElInterno extends JFrame implements Serializable,
		InternalFrameListener {
 
	public ElInterno() {
		super("Usando JDesktopPane");
		laBarra = new JMenuBar();
		elMenu = new JMenu("Agregar");
		segundoMenuFuncion = new JMenu("Seleciona Marcos");
		nuevoMarco = new JMenuItem("Primer marco Interno");
		otroMarco = new JMenuItem("Segundo Marco Interno");
		selecciona1 = new JMenuItem("Selecciona Primer Venta");
		selecciona2 = new JMenuItem("Selecciona Segunda Ventana");
		elEscritorio = new JDesktopPane();
 
		elMenu.add(nuevoMarco);
		elMenu.add(otroMarco);
		segundoMenuFuncion.add(selecciona1);
		segundoMenuFuncion.add(selecciona2);
		laBarra.add(elMenu);
		laBarra.add(segundoMenuFuncion);
		setJMenuBar(laBarra);
		add(elEscritorio);
		nuevoMarco
				.addActionListener(e -> {
					marco = new JInternalFrame("Primer interno", true, true,
							true, true);
					botonventaInterna1 = new JButton("Activa");
					degradado = new ElDegradado();
					degradado.setLayout(new FlowLayout());
					degradado.add(botonventaInterna1);
					marco.add(degradado, CENTER);
					marco.setSize(new Dimension(300, 200));
					elEscritorio.add(marco);
					marco.show();
					marco.setVisible(true);
					marco.addInternalFrameListener(this);
					botonventaInterna1.addActionListener(ex-> {
						//showInternalMessageDialog(this, "Deshabilitando el boton", "Mensajito", INFORMATION_MESSAGE);
						botonventanaInterna2.setEnabled(false);
					});
					if (marco.isShowing()) {
						System.out.println("esta abierto");
						nuevoMarco.setEnabled(false);
					}
				});
		otroMarco.addActionListener(e -> {
			segundoMarco = new JInternalFrame("Segundo Interno", true, true,
					true, true);
			botonventanaInterna2 = new JButton("Muestra");
			degradado = new ElDegradado();
			degradado.setLayout(new FlowLayout());
			degradado.add(botonventanaInterna2);
			segundoMarco.add(degradado, CENTER);
			segundoMarco.setSize(new Dimension(300, 200));
			elEscritorio.add(segundoMarco);
			segundoMarco.addInternalFrameListener(this);
			segundoMarco.show();
			segundoMarco.setVisible(true);
			botonventanaInterna2.addActionListener(ex -> {
				//showInternalMessageDialog(this, "Estoy esperando la funcion :D", "Mensajito", INFORMATION_MESSAGE);
			});
			if(segundoMarco.isShowing()) {
				System.out.println("esta abierto");
				otroMarco.setEnabled(false);
			}
		});
		selecciona1.addActionListener(e -> {
			marco.toFront();
			segundoMarco.toBack();
 
		});
		selecciona2.addActionListener(e -> {
			segundoMarco.toFront();
			marco.toBack();
		});
 
	}
 
	@Override
	public void internalFrameOpened(InternalFrameEvent e) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void internalFrameClosing(InternalFrameEvent e) {
		// TODO Auto-generated method stub
		Object control = e.getSource();
		if (control.equals(marco)) {
			System.out.println("Se cerro el primer marco");
			nuevoMarco.setEnabled(true);
		} else if (control.equals(segundoMarco)) {
			System.out.println("Se cerro el segundo marco");
			otroMarco.setEnabled(true);
		}
	}
 
	@Override
	public void internalFrameClosed(InternalFrameEvent e) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void internalFrameIconified(InternalFrameEvent e) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void internalFrameDeiconified(InternalFrameEvent e) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void internalFrameActivated(InternalFrameEvent e) {
		// TODO Auto-generated method stub
 
	}
 
	@Override
	public void internalFrameDeactivated(InternalFrameEvent e) {
		// TODO Auto-generated method stub
 
	}
 
	private static final long serialVersionUID = -6071900618852090696L;
	private JDesktopPane elEscritorio;
	private JInternalFrame marco, segundoMarco;
	private JMenuBar laBarra;
	private JMenu elMenu, segundoMenuFuncion;
	private JMenuItem nuevoMarco, otroMarco, selecciona1, selecciona2;
	private static JButton botonventaInterna1, botonventanaInterna2;
	private ElDegradado degradado;
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Acceder al toolbar desde una ventana hijo

Publicado por lozano (23 intervenciones) el 23/06/2015 19:34:33
Amigo, Gracias por el ejemplo,
pero no me corre, estoy trabajando con el NetBeans, y me sale que la variable e-> no se reconoce. esta variable se usa en addActionListener
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar