tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
353
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    Ich versuche ein Programm zu schreiben, wo ich ein JTabel habe und dadrüber ein JMenuBar. Jedoch setzte ich das BorderLayout auf North und es tauch im South auf und umgekehrt ebenso. Bin jetzt voll verwirrt. Woran kann das liegen?

    Hier mein Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    
    import java.util.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class GUI1 extends JFrame
    {
     
      ArrayList products = new ArrayList();
      JPanel panInput = new JPanel( new GridLayout(3,1)),
             panAdd = new JPanel(),
             panDelSort = new JPanel();
     
      JButton btnAdd = new JButton("Add"),
              btnDelete = new JButton("Delete"),
              btnSort = new JButton("Sort Products");
     
      JTable tab = new JTable();
      JMenuBar menubar = new JMenuBar();                  
            
      JMenu  file = new JMenu("File");
      JMenu  playlist = new JMenu("Playlist");
              
      JMenuItem exit = new JMenuItem("Exit");         
      JMenuItem AddDVD = new JMenuItem("Add DVD");
      JMenuItem UpdateDVD = new JMenuItem("Update DVD");
      JMenuItem SearchDVD = new JMenuItem("Search DVD");        
     
      DefaultTableModel tabMod = new DefaultTableModel();
     
      Product [] initialProducts = {new Product(12, "Harry Potter","4 Oscars")};
     
      public GUI1() {
        super("DVD List");
        tab.setModel(tabMod);
        tabMod.addColumn("Title");
        tabMod.addColumn("Price");
        tabMod.addColumn("Type");
        tabMod.addColumn("Notes");
     
        btnAdd.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
            
          }
        });
     
     
     
        btnDelete.setToolTipText("Select the records to delete first");
        btnDelete.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
              
          }
        });
     
        
        btnSort.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent ae) {
              
          }
        });                
              menubar.add(file);
              menubar.add(playlist);         
             
              file.add(exit);
     
              playlist.add(AddDVD);
              playlist.add(UpdateDVD);
              playlist.add(SearchDVD);     
              
        
      //  panDelSort.add(btnAdd);
       // panDelSort.add(btnDelete);
      //  panDelSort.add(btnSort);
     
        panInput.add(panAdd);
        panInput.add(panDelSort);
     
        panInput.add(menubar, BorderLayout.SOUTH);
        getContentPane().add(panInput, BorderLayout.NORTH);
        getContentPane().add(new JScrollPane(tab));
     
       // loadInitialProducts();
    }
     
     
    public static void main(String [] a){
        GUI1 me = new GUI1();
        me.addWindowListener(new WindowAdapter () {
           public void windowClosing(WindowEvent e) {
              System.exit(0) ;
            }
          });
        me.pack();
        me.setVisible(true);
      }
     
     
    }
     

  2. #2
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Was soll jetzt wo angezeigt werden (ich kann dir leider nicht ganz folgen)?

    bei mir sieht es so aus:
    http://www.tutorials.de/attachment.p...1&d=1294355759


    PS: nutze doch statt den code tags die Java Tags - erhöht die lesbarkeit
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Sehr komisches Problem mit dem JPanel South und North-bildschirmfoto.png  
     

  3. #3
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    Jaa das MenuBar muss doch gaz oben liegen warum ist da zwischen so ein Freiraum ****
     

  4. #4
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    ganz einfach: weil du zum oberen JPanel panInput die beiden JPanel panAdd und panDelSort oberhalb von menubar hinzufügst.

    füge deine menubar statt
    Code java:
    1
    
        panInput.add(menubar, BorderLayout.SOUTH);
    doch einfach mit
    Code java:
    1
    
    this.setJMenuBar(menubar);
    hinzu. so ist das zumindest üblich.
     

  5. #5
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    danke funktioniert jetzt. Warum hast du jetzt this davor gesetzt **** Habe ich nicht ganz gerafft****?
     

  6. #6
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    kann man machen, muss man aber nicht.
    Code java:
    1
    
    this
    wird benutzt, um auf Felder (der Klasse) zuzugreifen. Angenommen du hättest in der Methode bzw. im Constructor eine Variable, die den selben Namen trägt wie das Feld, so könntest du mit this auf das Feld zugreifen. Beispiel:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    public class Test{
        
        private String name = "TestFeld";
        
        public void tuIrgendWas(){
            String name = "innere Variable";
            
            System.out.println(name);// output: "innere Variable"
            System.out.println(this.name);// output: "TestFeld"
        }
    }

    die Ausgabe beim Aufruf von tuIrgendWas() wäre dann
    Code :
    1
    2
    
    innere Variable
    TestFeld
     

  7. #7
    Code46 Code46 ist offline Mitglied Gold
    Registriert seit
    Sep 2008
    Beiträge
    184
    AAAA ok macht sinn.Danke für deine Erklärung .
     

  8. #8
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    PS: mach doch einen Haken für "erledigt"
     

Ähnliche Themen

  1. JPanel nach NORTH ausrichten
    Von January im Forum Java
    Antworten: 3
    Letzter Beitrag: 18.01.11, 21:49
  2. Button (NORTH-Text, CENTER-Image, SOUTH-Text)
    Von JavaEngel im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 11
    Letzter Beitrag: 25.10.08, 13:56
  3. Komisches Problem ...
    Von BehindTheScenes im Forum Javascript & Ajax
    Antworten: 0
    Letzter Beitrag: 05.04.07, 22:20
  4. Sehr sehr seltsames Problem
    Von SilentWarrior im Forum HTML & XHTML
    Antworten: 12
    Letzter Beitrag: 31.12.02, 14:20
  5. Sehr, sehr, sehr merkwürdiges Problem!
    Von Feldhofe im Forum PHP
    Antworten: 14
    Letzter Beitrag: 21.11.02, 23:09