Buenos días.
Voy a realizar un ejercicio en el que tengo que crear un marco, introducirle 3 laminas:
- En la parte superior un menú desplegable.
- En la zona central campo de texto
- En la zona de la izquierda un desplegable al que cargaré todos los tipos de letra que tiene mi ordenador y un botón que establecerá y quitará el salto de línea.
- He decido poner en practica alguno de los conceptos que he ido aprendiendo por el camino,
- He generado una clase interna para cada una de las láminas encapsulando así mis laminas dentro de una lámina principal y encapsulando dentro de esta láminas las variables que me harían falta.
- He cargado las letras de mi ordenador en un array que posteriormente he pasado al constructor del JComboBox.
- He creado una clase anónima para el botón en la que lo pongo a la escucha y le doy instrucción al mismo tiempo.
- He jugado con los Layout para conseguir una combinación en el marco.
Espero que os pueda ser útil. Tengo que terminarlo dando funcionalidad al menú y haciendo que modifique el tipo letra, ya lo iré colgando cuando continúe avanzando.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class
practica3 {
public static void main(String[] arg) {
MarcO marcO22= new
MarcO();
marcO22.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
marcO22.setVisible(true);
}
}
class MarcO extends JFrame{
public MarcO() {
setBounds(400,100,800,500);
add(new Lamina());
}
}
class Lamina extends JPanel{
private class LAMINA_BARRA
extends JPanel{
public LAMINA_BARRA() {
Lamina_barra= new
JPanel();
Lamina_barra.setLayout(new FlowLayout(FlowLayout.CENTER,1,0));
BARRA = new
JMenuBar();
Inicio= new JMenu("INICIO");
COP_PEG= new JMenu("COP & PEG");
tIPO_LETRA= new JMenu("TIPO LETRA");
TAMAÑO_LETRA = new JMenu("TAMAÑO LETRA");
VISTA = new JMenu("VISTA");
COPIAR= new JMenuItem("COPIAR");
PEGAR= new JMenuItem("PEGAR");
GUARDAR= new JMenuItem("GUARDAR");
GUARDAR_COMO= new JMenuItem("GUARDAR COMO");
NEGRITA = new JMenuItem("NEGRITA");
CURSIVA = new JMenuItem("CURSIVA");
POR2 = new JMenuItem("X 2");
POR10 =
new JMenuItem("X 10");
POR100
= new JMenuItem("X 100");
CINCUENTA= new JMenuItem("50 %");
CIEN= new JMenuItem("100 %");
DOSCIENTOS= new JMenuItem("200 %");
TRESCIENTOS= new JMenuItem("300 %");
BARRA.add(Inicio);
Inicio.add(GUARDAR);
Inicio.add(GUARDAR_COMO);
Inicio.addSeparator();
Inicio.add(COP_PEG);
COP_PEG.add(COPIAR);
COP_PEG.add(PEGAR);
BARRA.add(tIPO_LETRA);
tIPO_LETRA.add(NEGRITA);
tIPO_LETRA.add(CURSIVA);
BARRA.add(TAMAÑO_LETRA);
TAMAÑO_LETRA.add(POR2);
TAMAÑO_LETRA.add(POR10);
TAMAÑO_LETRA.add(POR100);
BARRA.add(VISTA);
VISTA.add(CINCUENTA);
VISTA.add(CIEN);
VISTA.add(DOSCIENTOS);
VISTA.add(TRESCIENTOS);
Lamina_barra.add(BARRA);
add(Lamina_barra);
}
private JMenuBar BARRA;
private JMenu Inicio, tIPO_LETRA,TAMAÑO_LETRA,VISTA,COP_PEG;
private JMenuItem COPIAR,PEGAR,GUARDAR,GUARDAR_COMO,NEGRITA,CURSIVA,POR2,POR10,POR100,CIEN,DOSCIENTOS,TRESCIENTOS,CINCUENTA;
}
private class LAMINA_BOTONES
extends JPanel{
public LAMINA_BOTONES() {
Lamina_botones= new
JPanel();
Lamina_botones.setLayout(new GridLayout(2,1));
Establece_corte_Linea= new
JButton("Set
Line Warp");
Establece_corte_Linea.setBackground(Color.LIGHT_GRAY);
//clase interna anónima
parara el método Actionlistener del botón
Establece_corte_Linea.addActionListener(new
ActionListener() {
public void
actionPerformed(ActionEvent e) {
boolean saltar =! Area_texto.getLineWrap();
Area_texto.setLineWrap(saltar);
if (saltar) {
Establece_corte_Linea.setText("Quitar
SAlto Linea");
}else {
Establece_corte_Linea.setText("Poner
Salto Linea");
} }
});
//Creamos un array al
que le cargamos las fuentes de nuestro
pc
String Fuentes_de_mi_pc []=
GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
//pasamos el array por
parametros al combo para cargar los datos
Tipo_letra= new JComboBox(Fuentes_de_mi_pc);
Tipo_letra.setSize(new Dimension(10,10));
Lamina_botones.add(Establece_corte_Linea);
Lamina_botones.add(Tipo_letra);
add(Lamina_botones);
}
private JButton Establece_corte_Linea;
private JComboBox Tipo_letra;
}
private class LAMINA_TEXTO
extends JPanel{
public LAMINA_TEXTO() {
Lamina_Texto = new
JPanel();
Area_texto= new
JTextArea("",25,45);
Area_texto.setLineWrap(true);
Scroll_texto= new
JScrollPane(Area_texto);
Lamina_Texto.add(Scroll_texto);
add(Lamina_Texto);
}
}
public Lamina() {
setLayout(new BorderLayout());
LAMINA_TEXTO L_text = new
LAMINA_TEXTO();
LAMINA_BOTONES L_BPT = new
LAMINA_BOTONES();
LAMINA_BARRA L_BAR = new
LAMINA_BARRA();
setLayout(new BorderLayout());
L_text.setVisible(true);
add(L_text, BorderLayout.CENTER);
add(L_BPT,BorderLayout.WEST);
add(L_BAR,BorderLayout.NORTH);
}
private JScrollPane Scroll_texto;
private JTextArea Area_texto;
private JPanel Lamina_barra,Lamina_Texto,Lamina_botones;
}
Tal y como os dije este es el principio de mi practica, mas adelante iré colgando el resto.
Muchas gracias a todos/as
No hay comentarios:
Publicar un comentario