1: Tabelle (JTable):
1. Grundkonzepte:
Tabelle (JTable) ist eine neu hinzugefügte Komponente von Swing. Sie wird hauptsächlich zum Anzeigen von Daten in Tabellenform verwendet. Sie bietet einen einfachen Mechanismus zum Anzeigen großer Datenblöcke.
2. Häufig verwendete Bauweisen:
* JTable(): Erstellen Sie eine JTable-Instanz unter Verwendung des Systemstandardmodells.
* JTable(int numRows, int numColumns): Erstellen Sie eine leere Tabelle mit DefaultTableModel, um Zeilen und Spalten anzugeben.
* JTable(Object[ ][ ] rowData,Object[ ][ ] columnsNames): Erstellen Sie eine Tabelle, die zweidimensionale Daten anzeigt.
Tabellen können direkt mithilfe von Tabellenspaltennamen-Arrays und Tabellendaten-Arrays erstellt werden.
* JTable(TableModel dm): Erstellen Sie eine JTable-Instanz unter Angabe des Datenschemas und des Standardfeldschemas.
Objekte der Datenmodellklasse werden normalerweise zum Speichern von Daten verwendet, und Tabellenmodelle werden über Tabellenspaltennamen-Arrays und Tabellendaten-Arrays erstellt.
3. Häufig verwendete Methoden:
4. Umfassender Fall:
Code 1:
Kopieren Sie den Codecode wie folgt:
öffentliche Klasse JTableDemo1 erweitert JFrame {
//Tabelle definieren
JTable-Tabelle;
//Definieren Sie das Bildlaufleistenfeld (um die Tabelle scrollbar zu machen)
JScrollPane scrollPane;
// Definieren Sie das Objekt der Datenmodellklasse (zum Speichern von Daten).
DefaultTableModel tableModel;
public JTableDemo1() {
super();
setTitle("Tabellenmodell und Tabelle");
scrollPane = new JScrollPane();
//Tabellenspaltennamen-Array definieren
String[] ColumnNames = { "A", "B", "C" };
//Tabellendatenarray definieren
String[][] tableValues = { { "A1", "B1", "C1" }, { "A2", "B2", "C2" },
{ "A3", "B3", "C3" }, { "A4", "B4", "C4" } };
//Erstellen Sie ein Objekt der Tabellenmodellklasse und geben Sie Tabellenspaltennamen und Tabellendaten an
tableModel = new DefaultTableModel(tableValues, columnsNames);
//Eine Tabelle des angegebenen Tabellenmodells erstellen
table = new JTable(tableModel);
//Set RowSorter (RowSorter wird zum Sortieren und Filtern von JTable verwendet).
table.setRowSorter(new TableRowSorter<DefaultTableModel>(tableModel));
scrollPane.setViewportView(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
setBounds(300, 200, 400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new JTableDemo1();
}
}
Screenshot 1:
Code 2:
Kopieren Sie den Codecode wie folgt:
java.awt.* importieren;
javax.swing.* importieren;
öffentliche Klasse JTableDemo3 {
JFrame-Rahmen;
JPanel-Panel;
JScrollPane scrollPane1, scrollPane2, scrollPane3;
JTable jtable1, jtable2, jtable3;
public JTableDemo3() {
Frame = new JFrame("JTableDemo");
jtable1 = neue JTable(8, 6);
final Object[] columnsNames = { "Name", "Gender", "Home Address", // Spaltennamen werden am besten mit final geändert
„Telefonnummer“, „Geburtstag“, „Beruf“, „Einkommen“, „Familienstand“, „Beziehungsstatus“ };
Object[][] rowData = {
{ „ddd“, „Male“, „Nanjing, Jiangsu“, „1378313210“, „24.03.1985“, „Student“, „Parasite“,
„Unverheiratet“, „Nicht“ },
{ „eee“, „weiblich“, „Nanjing, Jiangsu“, „13645181705“, „xx/xx/1985“, „tutor“, „unbekannt“,
„Unverheiratet“, „Es scheint nicht“ },
{ „fff“, „männlich“, „Nanjing, Jiangsu“, „13585331486“, „12/08/1985“, „Autoverkäufer“,
„Unsicher“, „Unverheiratet“, „Ja“ },
{ „ggg“, „weiblich“, „Nanjing, Jiangsu“, „81513779“, „xx/xx/1986“, „Hotelangestellte“,
„Entschlossen, aber unbekannt“, „Unverheiratet“, „Ja“ },
{ „hhh“, „männlich“, „Nanjing, Jiangsu“, „13651545936“, „xx/xx/1985“, „Student“, „Im Exil“,
„Unverheiratet“, „Nicht nach zahlreichen Trennungen“ } };
jtable2 = new JTable(rowData, columnsNames);
jtable3 = new JTable(rowData, columnsNames);
jtable3.setPreferredScrollableViewportSize(new Dimension(600, 100));//Legen Sie die Größe der Tabelle fest
jtable3.setRowHeight(30);//Setzen Sie die Höhe jeder Zeile auf 20
jtable3.setRowHeight(0, 20);//Setzen Sie die Höhe von Zeile 1 auf 15
jtable3.setRowMargin(5);//Legen Sie den Abstand zwischen zwei benachbarten Zellenreihen fest
jtable3.setRowSelectionAllowed(true); // Legen Sie fest, ob es ausgewählt werden kann. Der Standardwert ist false
jtable3.setSelectionBackground(Color.white);//Legen Sie die Hintergrundfarbe der ausgewählten Zeile fest
jtable3.setSelectionForeground(Color.red);//Legen Sie die Vordergrundfarbe der ausgewählten Zeile fest
jtable3.setGridColor(Color.red);//Legen Sie die Farbe der Gitterlinien fest
jtable3.selectAll();//Alle Zeilen auswählen
jtable3.setRowSelectionInterval(0, 2);// Setzt die anfängliche Auswahlzeile, hier befinden sich die Zeilen 1 bis 3 alle im ausgewählten Zustand
jtable3.clearSelection();//Auswahl abbrechen
jtable3.setDragEnabled(false); // Verstehe das nicht
jtable3.setShowGrid(true); // Ob Gitterlinien angezeigt werden sollen
jtable3.setShowHorizontalLines(true); // Ob horizontale Gitterlinien angezeigt werden sollen
jtable3.setShowVerticalLines(true); // Ob vertikale Gitterlinien angezeigt werden sollen
jtable3.setValueAt("tt", 0, 0);//Legen Sie den Wert einer bestimmten Zelle fest, dieser Wert ist ein Objekt
jtable3.doLayout();
jtable3.setBackground(Color.cyan);
// JTable wird am besten zu JScrollPane hinzugefügt, um einen Scroll-Effekt zu erzielen
scrollPane1 = neues JScrollPane(jtable1);
scrollPane2 = new JScrollPane(jtable2);
scrollPane3 = new JScrollPane(jtable3);
panel = new JPanel(new GridLayout(0, 1));
panel.setPreferredSize(new Dimension(600, 400));
panel.setBackground(Color.black);
panel.add(scrollPane1);
panel.add(scrollPane2);
panel.add(scrollPane3);
frame.setContentPane(panel);
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JTableDemo3();
}
}
Screenshot 2:
Zwei: Baum (JTree):
1. Grundkonzepte:
Baum (JTree): Ein Steuerelement, das hierarchische Datensätze als Umrisse anzeigt.
2. Häufig verwendete Bauweisen:
JTree(): Gibt einen JTree mit dem Beispielmodell zurück.
JTree(Object[] value): Gibt einen JTree zurück, der jedes Element des Arrays als untergeordneten Knoten des neuen Wurzelknotens angibt, der nicht angezeigt wird.
//Nur dieser Konstruktor kann mehrere Wurzelknoten erstellen
JTree(Object[] value): Gibt einen JTree zurück, der jedes Element des Arrays als untergeordneten Knoten des neuen Wurzelknotens angibt, der nicht angezeigt wird.
JTree(TreeNode root): Gibt einen JTree mit dem angegebenen TreeNode als Root zurück, der den Root-Knoten anzeigt.
JTree(TreeNode root, boolean asksAllowsChildren): Gibt einen JTree mit dem angegebenen TreeNode als Root zurück.
Es zeigt den Wurzelknoten auf eine bestimmte Art und Weise an und bestimmt, ob es sich bei dem Knoten um einen Blattknoten handelt. (Setzen Sie true, um untergeordnete Knoten hinzuzufügen, und fügen Sie dann untergeordnete Knoten hinzu.)
3. Code-Demonstration:
Beispiel 1:
Kopieren Sie den Codecode wie folgt:
öffentliche Klasse JTreeDemo1 {
JFrame f;
Box-Box;
JTree jTree1,jTree2;
öffentliches JTreeDemo1()
{
f = new JFrame(" JTreeDemo1 ");
box = Box.createHorizontalBox(); //Box-Klassenobjekt erstellen
jTree1 = new JTree();
jTree2 = new JTree();
//Fügen Sie dieser Komponente beliebige Schlüssel/Werte hinzu
jTree1.putClientProperty("JTree.lineStyle", "Angled");
//Fügen Sie dem Box-Container ein Scroll-Panel hinzu
box.add(new JScrollPane(jTree1), BorderLayout.WEST);
box.add(new JScrollPane(jTree2), BorderLayout.EAST);
f.getContentPane().add(box, BorderLayout.CENTER);
f.setSize(300, 240);
//f.pack();
f.setLocation(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new JTreeDemo1();
}
}
Screenshot 1:
Beispiel 2:
Kopieren Sie den Codecode wie folgt:
öffentliche Klasse JTreeDemo2 {
JFrame f;
JPanel p;
JTree jTree1,jTree2,jTree3,jTree4,jTree5,jTree6,jTree7;
public JTreeDemo2() {
f = new JFrame(" JTreeDemo2 ");
// Konstruktor: JTree()
jTree1 = neuer JTree();
// Konstruktor: JTree(Object[] value)
Object[] Buchstaben = { " a ", " b ", " c ", " d ", " e " };
jTree2 = neuer JTree(Buchstaben);
// Konstruktor: JTree(TreeNode root)(TreeNode empty)
//Erstelle einen Baum mit leeren Knoten
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode(); // Baumknoten definieren
jTree3 = new JTree(node1); // Verwenden Sie diesen Baumknoten als Parameter, um den JTree-Konstruktor aufzurufen, um einen Baum mit einem Wurzelknoten zu erstellen
// Konstruktor: JTree(TreeNode root) (wie oben, außer dass TreeNode nicht leer ist)
// Einen Baum mit einem Wurzelknoten erstellen
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode(" Color ");
jTree4 = new JTree(node2); // Knoten können nicht eingefärbt werden, die Standardeinstellung ist Weiß mit schwarzem Text
jTree4.setBackground(Color.lightGray);
// Konstruktor: JTree(TreeNode root, boolean
// asksAllowsChildren) (wie oben, aber TreeNode ist anders)
// Verwenden Sie die DefaultMutableTreeNode-Klasse, um zunächst einen Baum mit einem Wurzelknoten zu erstellen, ihn so festzulegen, dass untergeordnete Knoten hinzugefügt werden, und fügen Sie dann untergeordnete Knoten hinzu.
DefaultMutableTreeNode color = new DefaultMutableTreeNode(" Color ",
WAHR);
DefaultMutableTreeNode grey = new DefaultMutableTreeNode(" Gray ");
grey.add(new DefaultMutableTreeNode(" Lightgray "));
grey.add(new DefaultMutableTreeNode(" Darkgray "));
color.add(grau);
color.add(new DefaultMutableTreeNode(" Red "));
color.add(new DefaultMutableTreeNode(" Green "));
jTree5 = neuer JTree(Farbe);
// Konstruktor: JTree(TreeNode root) (wie oben, außer dass TreeNode nicht leer ist)
// Erstellen Sie einen Baum, indem Sie Knoten nacheinander hinzufügen
DefaultMutableTreeNode biology = new DefaultMutableTreeNode(" Biology ");
DefaultMutableTreeNode animal = new DefaultMutableTreeNode(" Animal ");
DefaultMutableTreeNode Mammal = new DefaultMutableTreeNode(" Mammal ");
DefaultMutableTreeNode horse = new DefaultMutableTreeNode(" Horse ");
Säugetier.add(Pferd);
animal.add(säugetier);
biology.add(animal);
jTree6 = neuer JTree(Biologie);
horse.isLeaf();
horse.isRoot();
//Konstruktor:JTree(TreeModel newModel)
// Verwenden Sie die DefaultMutableTreeNodel-Klasse, um einen Knoten zu definieren, und verwenden Sie diesen Knoten dann als Parameter, um einen Knoten mithilfe von DefaultTreeMode zu definieren
// Erstellen Sie ein Baummodell und verwenden Sie dann den JTree-Konstruktor, um einen Baum zu erstellen
DefaultMutableTreeNode root = new DefaultMutableTreeNode(" Root1 ");
DefaultMutableTreeNode child1 = new DefaultMutableTreeNode(" Child1 ");
DefaultMutableTreeNode child11 = new DefaultMutableTreeNode(" Child11 ");
DefaultMutableTreeNode child111 = new DefaultMutableTreeNode(
„Kind111“);
root.add(child1);
child1.add(child11);
child11.add(child111);
DefaultTreeModel model = new DefaultTreeModel(root);
jTree7 = neuer JTree(Modell);
p = neues JPanel();
p.setLayout(new BoxLayout(p, BoxLayout.X_AXIS));
p.setPreferredSize(new Dimension(700, 400));
// JTree muss auf JScrollPane platziert werden
p.add(new JScrollPane(jTree1));
p.add(new JScrollPane(jTree2));
p.add(new JScrollPane(jTree3));
p.add(new JScrollPane(jTree4));
p.add(new JScrollPane(jTree5));
p.add(new JScrollPane(jTree6));
p.add(new JScrollPane(jTree7));
f.setContentPane(p);
f.pack();
f.setLocation(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
neues JTreeDemo2();
}
}
Screenshot 2: