Trennlinie

Hallo,
ich habe ein Dialogfenster programmiert und möchte nun Trennlinien einfügen, die einzelne Bereiche voneinander trennen.
Kennt jemand von euch einen Befehl, mit dem man schnell und einfach horizontale, bzw. vertikale Linien in ein Dialogfenster einbringt?
Vielen Dank für eine Antwort
Manfred

Hallo Manfred,

für solche Zwecke kannst du einen JSeparator verwenden. Hierzu sollte dein Layoutmanager ihn entsprechend „stretchen“.
Empfehlung hierzu: TableLayout verwenden

Ciao, Bill

Hallo!
Vielen Dank für den Tipp mit dem JSeparator, aber ich habe folgendes Programm geschrieben, dass ein JLabel und ein JTextField umfasst.
Leider weiß ich nicht wie man den JSeparator verwendet.
Könnten Sie mir vielleicht einen kleinen Abschnitt Beispielquellcode geben, womit ich zischen dem JLabel und dem JTextField eine horizontale Linie einfügen kann?
Das Programm:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class eingabe extends JDialog implements WindowListener
{

/**
* Konstruktor für Objekte der Klasse ein
*/
public eingabe(JFrame frm)
{

super(frm,„Hallo“, true);
addWindowListener(this);
getContentPane().setLayout(new GridLayout(0,1));

JPanel über = new JPanel();
JPanel eingab = new JPanel();

JLabel überschrift = new JLabel(„Bitte geben Sie etwas ein“);
JTextField eing = new JTextField(12);

über.add(überschrift);
eingab.add(eing);

getContentPane().add(über);
getContentPane().add(eingab);
}

public void windowActivated(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}

public void windowClosing(WindowEvent e)
{
System.exit(0);
}

}

Vielen Dank für eine Antwort
Manfred

Hallo Manfred.

ich habe folgendes Programm geschrieben, dass ein
JLabel und ein JTextField umfasst.
Leider weiß ich nicht wie man den JSeparator verwendet.
Könnten Sie mir vielleicht einen kleinen Abschnitt
Beispielquellcode geben, womit ich zischen dem JLabel und dem
JTextField eine horizontale Linie einfügen kann?

Kein Problem, einfach den folgenden Code in der Datei
EingabeDialog.java abspeichern, kompilieren und ausführen.

import javax.swing.\*;
import java.awt.event.\*;
import java.awt.\*;

/\*\*
 \* Ein einfacher Eingabedialog, der den Einsatz einer Trennlinie (JSeparator)
 \* demonstriert.
 \*/
public class EingabeDialog extends JDialog implements WindowListener {
 //////////////////////////////////////////////////////////////////////
 // Konstanten
 //////////////////////////////////////////////////////////////////////
 private static final long serialVersionUID = -2517019062723271197L;

 //////////////////////////////////////////////////////////////////////
 // Konstruktoren
 //////////////////////////////////////////////////////////////////////
 /\*\*
 \* Konstruktor für Objekte der Klasse ein
 \*/
 public EingabeDialog(JFrame parentFrame) {
 super(parentFrame, "Hallo", true);
 addWindowListener(this);

 \_buildDialog();
 }

 //////////////////////////////////////////////////////////////////////
 // Methoden
 //////////////////////////////////////////////////////////////////////
 /\*\*
 \* Erstellt den Dialog.
 \*/
 protected void \_buildDialog() {
 // Dialog-Komponenten erstellen: 
 JLabel lblUeberschrift = new JLabel("Bitte geben Sie etwas ein");
 JTextField tfEingabe = new JTextField(12);
 JSeparator separator = new JSeparator(JSeparator.HORIZONTAL);

 Container contentPane = getContentPane();
 contentPane.setLayout(new GridBagLayout());

 // Dialog-Komponenten anordnen:
 GridBagConstraints constraints = null;
 int iXPos = 0;
 int iYPos = 0;
 int iBorderPadding = 5;
 int iCellPadding = 2;

 constraints = new GridBagConstraints();
 constraints.gridx = iXPos;
 constraints.gridy = iYPos;
 constraints.gridwidth = 1;
 constraints.gridheight = 1;
 constraints.weightx = 1;
 constraints.weighty = 0;
 constraints.ipadx = iCellPadding;
 constraints.ipady = iCellPadding;
 constraints.insets = new Insets(iBorderPadding,iBorderPadding,iBorderPadding,iBorderPadding);
 constraints.anchor = GridBagConstraints.CENTER;
 constraints.fill = GridBagConstraints.HORIZONTAL;
 contentPane.add(lblUeberschrift, constraints);

 iYPos++;
 constraints = new GridBagConstraints();
 constraints.gridx = iXPos;
 constraints.gridy = iYPos;
 constraints.gridwidth = 1;
 constraints.gridheight = 1;
 constraints.weightx = 1;
 constraints.weighty = 0;
 constraints.ipadx = iCellPadding;
 constraints.ipady = iCellPadding;
 constraints.insets = new Insets(iBorderPadding,iBorderPadding,iBorderPadding,iBorderPadding);
 constraints.anchor = GridBagConstraints.CENTER;
 constraints.fill = GridBagConstraints.HORIZONTAL;
 contentPane.add(separator, constraints);

 iYPos++;
 constraints = new GridBagConstraints();
 constraints.gridx = iXPos;
 constraints.gridy = iYPos;
 constraints.gridwidth = 1;
 constraints.gridheight = 1;
 constraints.weightx = 1;
 constraints.weighty = 0;
 constraints.ipadx = iCellPadding;
 constraints.ipady = iCellPadding;
 constraints.insets = new Insets(iBorderPadding,iBorderPadding,iBorderPadding,iBorderPadding);
 constraints.anchor = GridBagConstraints.CENTER;
 constraints.fill = GridBagConstraints.HORIZONTAL;
 contentPane.add(tfEingabe, constraints);
 }

 public void windowActivated(WindowEvent e){}
 public void windowClosed(WindowEvent e){}
 public void windowDeactivated(WindowEvent e){}
 public void windowDeiconified(WindowEvent e){}
 public void windowIconified(WindowEvent e){}
 public void windowOpened(WindowEvent e){}
 public void windowClosing(WindowEvent e) {
 System.exit(0);
 }

 //////////////////////////////////////////////////////////////////////
 // MAIN
 //////////////////////////////////////////////////////////////////////
 /\*\*
 \* Demonstrations- und Testcode.
 \* 
 \* @param args
 \*/
 public static void main(String[] args) {
 JFrame parentFrame = new JFrame("ParentFrame");
 EingabeDialog eingabeDialog = new EingabeDialog(parentFrame);
 eingabeDialog.pack();
 eingabeDialog.setVisible(true);
 }
}

Beachte, dass ich hier GridBagLayout als Layout-Manager verwende.
Der benötigt zwar etwas mehr Code, Du hast dafür aber alle
Freiheiten, Komponenten in einem Formular anzuordnen.
Er arbeitet ähnlich wie HTML-Tabellen. Du beschreibst also die
Eigenschaften von einzelnen Tabellenzellen innerhalb der Tabelle

  • mit ihrer x- und y-Position (gridx und gridy),
  • den Eigenschaften Zellzwischenraum (ipadx und ipady),
  • der Breite der Zell-Rahmen (insets),
  • der Ausrichtung (anchor) und
  • dem Füllverhalten (fill)
  • zusammen mit der Füllgewichtung (weightx und weighty)

Experimentiere einfach ein bisschen mit den Parametern und
schau Dir die Doku zum GridBagLayout unter http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Gri…
an.

Gruß,
-Andreas.