- 1. Clase Graphics
- 2. JButton y JLabel
- 3. JTextField
- 4. BorderLayout
- 5. JCheckBox
- 6. JRadioButton
- 7. JComboBox
- 8. JSlider
- 9. JSpinner
- 10. JToggleButton
- 11. JSeparator
- 12. JDialog
- 13. JProgressBar
- 14. JFormateddTextField
- 15. JEditorPane
- 16. JSplitPane
- 17. JTabbedPane
- 18. JDesktopPane
- 19. JToolBar
- 20. JMenubar
- 21. JTable
- 22. JTree
- 23. JFileChooser
Ejercicio 1
Desarrolla una pequeña aplicación en Java que utilice un JEditorPane para mostrar contenido HTML básico. El programa debe cargar un archivo HTML local y mostrar su contenido en el JEditorPane. Además, agrega un JScrollPane para permitir desplazamiento si el contenido excede el tamaño del JEditorPane.
package jeditorpane;
import java.awt.Color;
import java.awt.Dimension;
import java.io.File;
import java.net.MalformedURLException;
import javax.swing.BoxLayout;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
public class Ejercicio1 {
public static void main(String[] args) {
// Crear una instancia de MarcoEditor
MarcoEditor miMarco = new MarcoEditor();
// Establecer la operación por defecto al cerrar la ventana
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Hacer visible la ventana
miMarco.setVisible(true);
}
}
class MarcoEditor extends JFrame {
public MarcoEditor() {
// Establecer tamaño y posición de la ventana
setBounds(0, 0, 500, 500);
// Establecer título de la ventana
setTitle("Editor");
// Hacer que la ventana no se pueda redimensionar
setResizable(false);
// Centrar la ventana en la pantalla
setLocationRelativeTo(null);
// Crear una instancia de LaminaEditor y agregarla al marco
LaminaEditor miLamina = new LaminaEditor();
add(miLamina);
}
}
class LaminaEditor extends JPanel {
public LaminaEditor() {
// Crear el panel principal y establecer su layout
JPanel principal = new JPanel();
principal.setLayout(new BoxLayout(principal, BoxLayout.Y_AXIS));
// Crear un JEditorPane para mostrar contenido HTML
JEditorPane editor = new JEditorPane();
// Establecer tamaño preferido para el JEditorPane
editor.setPreferredSize(new Dimension(300, 300));
// Establecer color de fondo del JEditorPane
editor.setBackground(Color.pink);
try {
// Ruta al archivo HTML local
File file = new File("rutas.html");
String filePath = file.toURI().toURL().toString();
// Cargar el archivo HTML en el JEditorPane
editor.setPage(filePath);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
// Crear un JScrollPane para agregar desplazamiento al JEditorPane
JScrollPane barra = new JScrollPane(editor);
// Agregar el JScrollPane al panel principal
principal.add(barra);
// Agregar el panel principal al panel de la lámina
add(principal);
}
}
Ejercicio 2
Desarrolla una aplicación en Java utilizando Swing que utilice un JTextPane para permitir la entrada y el formato de texto enriquecido. La aplicación debe incluir opciones para cambiar el estilo del texto (negrita, cursiva, subrayado) y el color del texto (rojo, azul, verde). Asegúrate de incluir un JScrollPane para permitir el desplazamiento si el contenido excede el tamaño del JTextPane.
package jeditorpane;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
public class Ejercicio2 {
public static void main(String[] args) {
// Crear una instancia de MarcoEditorText
MarcoEditorText miMarco = new MarcoEditorText();
// Establecer la operación por defecto al cerrar la ventana
miMarco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Hacer visible la ventana
miMarco.setVisible(true);
}
}
class MarcoEditorText extends JFrame {
public MarcoEditorText() {
// Establecer tamaño y posición de la ventana
setBounds(0, 0, 500, 500);
// Establecer título de la ventana
setTitle("Editor de Texto Enriquecido");
// Hacer que la ventana no se pueda redimensionar
setResizable(false);
// Centrar la ventana en la pantalla
setLocationRelativeTo(null);
// Crear una instancia de LaminaEditorText y agregarla al marco
LaminaEditorText miLamina = new LaminaEditorText();
add(miLamina);
}
}
class LaminaEditorText extends JPanel {
private JTextPane editor;
public LaminaEditorText() {
// Crear el panel principal y establecer su layout
JPanel principal = new JPanel();
principal.setLayout(new BoxLayout(principal, BoxLayout.Y_AXIS));
// Crear un JTextPane para la entrada de texto enriquecido
editor = new JTextPane();
// Establecer tamaño preferido del JTextPane
editor.setPreferredSize(new Dimension(300, 300));
// Establecer el color de fondo del JTextPane
editor.setBackground(Color.pink);
// Crear un JScrollPane y agregar el JTextPane a él
JScrollPane barra = new JScrollPane(editor);
// Agregar el JScrollPane al panel principal
principal.add(barra);
// Crear el panel de botones para cambiar el estilo del texto
JPanel panelBotones = new JPanel();
// Botón para negrita
JButton btnNegrita = new JButton("Negrita");
btnNegrita.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cambiarEstiloTexto(StyleConstants.CharacterConstants.Bold);
}
});
panelBotones.add(btnNegrita);
// Botón para cursiva
JButton btnCursiva = new JButton("Cursiva");
btnCursiva.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cambiarEstiloTexto(StyleConstants.CharacterConstants.Italic);
}
});
panelBotones.add(btnCursiva);
// Botón para subrayado
JButton btnSubrayado = new JButton("Subrayado");
btnSubrayado.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cambiarEstiloTexto(StyleConstants.CharacterConstants.Underline);
}
});
panelBotones.add(btnSubrayado);
// Botón para color rojo
JButton btnRojo = new JButton("Rojo");
btnRojo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cambiarColorTexto(Color.RED);
}
});
panelBotones.add(btnRojo);
// Botón para color azul
JButton btnAzul = new JButton("Azul");
btnAzul.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cambiarColorTexto(Color.BLUE);
}
});
panelBotones.add(btnAzul);
// Botón para color verde
JButton btnVerde = new JButton("Verde");
btnVerde.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
cambiarColorTexto(Color.GREEN);
}
});
panelBotones.add(btnVerde);
// Agregar el panel de botones al panel principal
principal.add(panelBotones);
// Agregar el panel principal al panel LaminaEditorText
add(principal);
}
// Método para cambiar el estilo del texto
private void cambiarEstiloTexto(Object estilo) {
StyledDocument doc = editor.getStyledDocument();
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setBold(attr, false);
StyleConstants.setItalic(attr, false);
StyleConstants.setUnderline(attr, false);
if (estilo == StyleConstants.CharacterConstants.Bold) {
StyleConstants.setBold(attr, true);
} else if (estilo == StyleConstants.CharacterConstants.Italic) {
StyleConstants.setItalic(attr, true);
} else if (estilo == StyleConstants.CharacterConstants.Underline) {
StyleConstants.setUnderline(attr, true);
}
doc.setCharacterAttributes(editor.getSelectionStart(), editor.getSelectionEnd() - editor.getSelectionStart(), attr, false);
}
// Método para cambiar el color del texto
private void cambiarColorTexto(Color color) {
StyledDocument doc = editor.getStyledDocument();
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setForeground(attr, color);
doc.setCharacterAttributes(editor.getSelectionStart(), editor.getSelectionEnd() - editor.getSelectionStart(), attr, false);
}
}