Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo diseñar una ventana usando Java, las funciones requeridas son las siguientes:

Cómo diseñar una ventana usando Java, las funciones requeridas son las siguientes:

Tengo una colección de interfaces para swing, que contiene componentes principales de uso común. Puedes usarlos directamente

paquete demo.synth;

importar javax. swing.*;

importar java.awt.*;

importar java.awt.event.*

importar java.lang.reflect.InvocationTargetException;

importar javax.swing.tree.*;

importar javax.swing.event.*;

importar javax.swing.border.*;

importar javax.swing.event.*;

importar javax.swing.border.*;

p>

importar javax.swing.plaf.metal .MetalLookAndFeel;

importar javax.swing.plaf.synth.SynthLookAndFeel;

importar javax.swing.table.*

la clase pública SwingTest extiende JFrame {

/**

* Módulo principal, inicializa todos los submódulos y establece las propiedades relevantes del marco principal

*/

public SwingTest() {

// Inicializa todos los módulos

MenuTest menuTest = new MenuTest();

LeftPanel leftPanel = new LeftPanel();

RightPanel rightPanel = nuevo RightPanel();

BottomPanel bottomPanel = nuevo BottomPanel();

CenterPanel centerPanel = nuevo CenterPanel();

// Establecer el diseño del marco principal

Container c = this.getContentPane();

// c.setLayout(new BorderLayout()

> this.setJMenuBar(menuTest);

c.add(leftPanel, BorderLayout.WEST);

c.add(rightPanel, BorderLayout. EAST);

c.add(centerPanel, BorderLayout.CENTER);

c.add(bottomPanel, BorderLayout.SOUTH);

// Usar clase implícita sin nombre, agregar eventos de ventana

this.addWindowListener(new WindowAdapter() {

public void WindowClosing(WindowEvent e) {

// Liberar recursos, salir del programa

disponer();

Sistema.

exit(0);

}

});

setSize(800, 600);

setTitle("* Todo el software grupal Of Swing *");

// Oculta la barra de título del marco. Esta función está desactivada temporalmente para facilitar el uso de eventos de ventana.

// setUndecorated(true) ;

setLocation(200, 150);

this.setVisible(true);

}

// //// ////// ///////////////////////////////////////////// ////////// ///////////////

/**

* Módulo de procesamiento de barra de menú JMenuBar -- --JMenu-- --JMenuItem --ActionListener

*

*/

class MenuTest extiende JMenuBar {

JDialog privado aboutDialog

/**

* Operación de inicialización del menú

*/

public MenuTest() {

JMenu fileMenu = new JMenu("Archivo");

JMenuItem exitMenuItem = new JMenuItem("Salir", KeyEvent.VK_E);

JMenuItem aboutMenuItem = new JMenuItem("Acerca de... .", KeyEvent.VK_A);

fileMenu.add(exitMenuItem);

fileMenu.add(aboutMenuItem);

this.add(fileMenu);

aboutDialog = new JDialog ();

initAboutDialog();

// Evento de menú

exitMenuItem.addActionListener(new ActionListener( ) {

acción vacía públicaPerformed(ActionEvent e) {

disponer();

System.exit(0);

});

aboutMenuItem.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// Procesamiento del cuadro de diálogo "Acerca de"

aboutDialog.setVisible(true

}

}); >

/**

>

* Volver sobre el cuadro de diálogo

*/

public JDialog getAboutDialog() {

return aboutDialog;

}

/**

* Establece la apariencia del cuadro de diálogo "Acerca de" y responde a eventos. Las operaciones se realizan en el marco de contenido como JFrame.

*/

public void initAboutDialog() {

aboutDialog.setTitle("Acerca de"

Contenedor con = aboutDialog.getContentPane(); >

// Usar declaraciones html en Swing

Icon icon = new ImageIcon("smile.gif");

JLabel aboutLabel = new JLabel("lt; htmlgt; lt ; bgt ;lt;font size=5gt;"

"lt;centergt;¡Todo el software colaborativo de Swing! " "lt;brgt;Kasam.Huang",

icono, JLabel. CENTER) ;

// JLabel aboutLabel = new JLabel("Swing

// ¡Versión simplificada de la lista de componentes!", icono, JLabel.CENTER);

con. add(aboutLabel, BorderLayout.CENTER);

aboutDialog.setSize(450, 225);

aboutDialog.setLocation(300, 300);

aboutDialog. addWindowListener(new WindowAdapter() {

public void WindowClosing(WindowEvent e) {

dispose();

}

}) ;

}

}

// //////////////////// //// //////////////////////////////////////////////// ////////

/**

* El módulo más a la izquierda hereda JPanel y el contenido de inicialización es JTree JPanel-- --JTree

*/

clase LeftPanel extiende JPanel {

private int i = 0

public LeftPanel() {

DefaultMutableTreeNode root = new DefaultMutableTreeNode("Raíz");

DefaultMutableTreeNode niño = new DefaultMutableTreeNode("Niño

");

DefaultMutableTreeNode select = new DefaultMutableTreeNode("select");

DefaultMutableTreeNode child1 = new DefaultMutableTreeNode("" i);

root.add( niño);

root.add(select);

child.add(child1);

JTree árbol = nuevo JTree(raíz);

tree.getSelectionModel().setSelectionMode(

TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);

// Altura de fila de cada nodo

tree.setRowHeight( 20 );

tree.addTreeSelectionListener(new TreeSelectionListener() {

public void valueChanged(TreeSelectionEvent e) {

// Las clases implícitas no pueden hacer referencia directamente al árbol de clases externo , 1. Las variables externas se pueden declarar como finales 2. Crear nuevos objetos de clases externas

JTree tree = (JTree) e.getSource();

DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) árbol

.getLastSelectedPathComponent();

i

selectNode.add(new DefaultMutableTreeNode("" i)); / Objeto s = tree.getLastSelectedPathComponent(); //

// getSelectedValue()

// JOptionPane.showMessageDialog(null, s "está seleccionado",

// "¡Mensaje!", JOptionPane.YES_OPTION);

}

});

tree.setPreferredSize(new Dimension(100, 300) ));

// tree.setEnabled(true);

JScrollPane scrollPane = new JScrollPane(tree);

// scrollPane.setSize(100, 350);

this.add(scrollPane);

}

}

// //////// ///////////////////

/////////////////////////////////////////////////// //

/**

* El módulo más bajo, hereda JPanel, inicializa el contenido como una barra de progreso y está controlado por un temporizador JPanel----JProcessBar --Timer

*/

clase BottomPanel extiende JPanel {

privado JProgressBar pb

público BottomPanel() {

pb = new JProgressBar ();

pb.setPreferredSize(new Dimension(550, 20));

// Establece un temporizador para controlar el procesamiento de la barra de progreso

Tiempo del temporizador = new Timer(1, new ActionListener() {

int contador = 0;

public void actionPerformed(ActionEvent e) {

contador ;

pb.setValue(counter);

Temporizador t = (Temporizador) e.getSource();

// Si la barra de progreso alcanza el valor máximo, vuelva a desarrollar el recuento

if (counter == pb.getMaximum()) {

t.stop(); = 0;

t.start();

}

}

}); .start();

pb.setStringPainted(true);

pb.setMinimum(0);

pb.setMaximum(1000); >

pb.setBackground(Color.blanco);

pb.setForeground(Color.rojo

this.add(pb); }

/* *

* Establecer el modelo de datos de la barra de progreso

*/

public void setProcessBar(BoundedRangeModel rangeModel) {

pb.setModel( rangeModel);

}

}

// ////////// //////////// /////////////////////////////////////// //////////////// //

/**

* El módulo más a la derecha hereda JPanel e inicializa varios botones JPanel-- -- JButton --JToggleButton -- JList --

* JCombox --JCheckBox....

>

*/

class RightPanel extiende JPanel {

public RightPanel() {

this.setLayout(new GridLayout(8, 1));

//Inicializar varios botones

JCheckBox checkBox = new JCheckBox("CheckButton");

JButton button = new JButton("OpenFile");< / p>

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

archivo JFileChooser = new JFileChooser();

int resultado = file.showOpenDialog(new JPanel());

if (resultado == file.APPROVE_OPTION) {

String fileName = file.getSelectedFile().getName( )

String dir = file.getCurrentDirectory().toString();

JOptionPane.showConfirmDialog(null,

dir "" fileName, "SelectFile" ,

JOptionPane.YES_OPTION);

}

}

});

JToggleButton toggleButton = nuevo JToggleButton ("RadioButton");

ButtonGroup buttonGroup = new ButtonGroup();

JRadioButton radioButton1 = new JRadioButton("RadioButton 1", false);

JRadioButton radioButton2 = new JRadioButton("RadioButton 2", false);

// Procesamiento del cuadro combinado

JComboBox comboBox = new JComboBox();

comboBox .setToolTipText ("ComboBox");

comboBox.addItem("Programador");

comboBox.addItem("Analista");

comboBox .addActionListener(nuevo ActionListener() {

acción nula pública realizada (ActionEve

nt e) {

JComboBox comboBox1 = (JComboBox) e.getSource();

comboBox1.addItem("Programador"); "Analista");

}

});

// Procesamiento del cuadro de lista

DefaultListModel litem = new DefaultListModel ();

litem.addElement("SAT");

litem.addElement("SUN");

lista JList = nueva JList(litem);

list.addListSelectionListener(new ListSelectionListener() {

public void valueChanged(ListSelectionEvent e) {

JList l = (JList) e.getSource() ;

Objeto s = l.getSelectedValue();

JOptionPane.showMessageDialog(null, s, "Mensaje!",

JOptionPane.YES_OPTION);

}

});

// Agregar grupo de botones

buttonGroup.add(radioButton1);

buttonGroup.add (radioButton2);

//Añadir varios botones para mostrar en JPanel

add(button);

add(toggleButton);

p>

agregar(checkBox);

agregar(radioButton1);

agregar(radioButton2

agregar(comboBox); >

agregar(lista);

this.setBorder(new EtchedBorder(EtchedBorder.LOWERED,

Color.LIGHT_GRAY, Color.blue)); > }

}

// //////////////////////////////// // /////////////////////////////////////////////

/ **

* El módulo de la capa intermedia hereda JPanel, inicializa la pestaña y establece el área de texto y la tabla en la pestaña. La parte superior e inferior del área de texto están separadas por separadores JPanel-. - -JTabbedPane--

* --Draw --JTable -JTextAreas -JText --JPopupMenu

*/

clase CenterPanel extender

s JPanel {

public CenterPanel() {

pestaña JTabbedPane = nuevo JTabbedPane(JTabbedPane.TOP);

JTextField textField = nuevo JTextField(

"Área de texto, haga clic en lt; Botón de texto; ¡seleccionará el archivo!"

textField.setActionCommand("textField");

JTextPane textPane = new JTextPane()); ;

textPane.setCursor(new Cursor(Cursor.TEXT_CURSOR));

textPane.setText("Editor, haga clic en el área de texto.");

/ / textPane.setForeground(new ImageIcon(""));

textPane.addMouseListener(new MouseAdapter() {

public void mousePressed(MouseEvent e) {

JTextPane textPane = (JTextPane) e.getSource();

textPane.setText("¡El comando de clic del editor fue exitoso!");

// textField.setText("" textPane. getText());

}

});

/*

* UpperCaseDocument doc = nuevo documento();

/*

* UpperCaseDocument doc = nuevo documento();

p>

* textField.setDocumentsetDocument(doc);

* doc. addDocumentListener(new DocumentListener() { public void

* changeUpdate(DocumentEvent e){} public void

* removeUpdate(DocumentEvent e){} public void

* insertUpdate(DocumentEvent e) { Texto del documento =

* (Documento)e.getDocument(); text.setText("¡Copia exitosa!"); /

JSplitPane splitPane = nuevo JSplitPane(JSplitPane.VERTICAL_SPLIT,

textField, textPane);

Tabla JTable = nueva JTable(10, 10);

// UIManager.get("Table.focusCellForeground");

// table.showHorizontalLines(true);

// table.showVerticalLines(true);

// table.setGridColor(Color.blue);

panel JPanel = nuevo JPanel();

panel.add(table.getTableHeader( ), BorderLayout.NORTH);

pane.add(table);

tab.addTab("Acción de texto", splitPane);

// tab .addTab(table.getTableHeader());

tab.addTab("Acción de tabla", panel);

tab.setPreferredSize(new Dimension(500, 600));

this.add(tab);

this.setEnabled(true

}

}

public static void main(String args[]){

new SwingTest()

}

}

;