NoPaste

von Anonymous

SNIPPET_TEXT:
  1. package ClientGui;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.Dimension;
  5. import java.awt.GridLayout;
  6. import java.awt.event.*;
  7. import java.util.LinkedList;
  8. import javax.swing.*;
  9.  
  10. public class GuiMain {
  11.  
  12.     public GuiMain(String fname) {
  13.         this.mainTitle = fname;
  14.         this.frame = new JFrame(fname);
  15.         this.frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  16.         this.frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
  17.         this.frame.setJMenuBar(this.createMenuBar());
  18.         this.rightPanel = new JScrollPane();
  19.         this.frame.add(this.createSplitPane(), BorderLayout.CENTER);
  20.         this.showMainWindow(this.lMC[0]);
  21.         this.createAndShowGUI();
  22.         this.rightPanel.setVisible(true);
  23.     }
  24.    
  25.     private JMenuBar createMenuBar() {
  26.         JMenuBar menuBar;
  27.         menuBar = new JMenuBar();
  28.         for(JMenu tmp : this.createMenuPoints())
  29.                 menuBar.add(tmp);
  30.         return menuBar;
  31.     }
  32.    
  33.     private LinkedList<JMenu> createMenuPoints() {
  34.         LinkedList<JMenu> res = new LinkedList<JMenu>();
  35.         for(int i = 0; i < this.menuP.length; i++) {
  36.                 res.add(new JMenu(this.menuP[i]));
  37.                 res.getLast().setMnemonic(this.menuPm[i]);
  38.                 for(JMenuItem mITmp : this.createMenuItems(i)) {
  39.                         res.getLast().add(mITmp);
  40.                         if(mITmp.getText().equals("Search..."))
  41.                                 res.getLast().addSeparator();
  42.                 }
  43.         }      
  44.         return res;
  45.     }
  46.  
  47.     private LinkedList<JMenuItem> createMenuItems(int i) {
  48.         LinkedList<JMenuItem> res = new LinkedList<JMenuItem>();
  49.         for(int j = 0; j < this.menuI[i].length; j++) {
  50.                 res.add(new JMenuItem(this.menuI[i][j]));
  51.                 res.getLast().setMnemonic(this.menuIm[i][j]);
  52.                 if(i < this.menuIa.length && j < this.menuIa[i].length)
  53.                         res.getLast().setAccelerator(this.menuIa[i][j]);
  54.         }
  55.         return res;
  56.     }
  57.    
  58.     private JSplitPane createSplitPane() {
  59.         this.sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, this.createList(), this.rightPanel);
  60.         this.sp.setOneTouchExpandable(true);
  61.         this.sp.setContinuousLayout(true);
  62.         this.sp.setDividerLocation(200);
  63.         this.sp.setVisible(true);
  64.         return this.sp;
  65.     }
  66.    
  67.     private JList createList() {
  68.         for(String tmp : this.lMC)
  69.                 this.lM.addElement(tmp);
  70.         this.list = new JList(this.lM);
  71.         this.list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  72.         this.list.addMouseListener(new MouseAdapter() {
  73.                         public void mousePressed(MouseEvent evt) {
  74.                                 showMainWindow((String)list.getSelectedValue());
  75.                         }
  76.                 });
  77.         this.list.addKeyListener(new KeyAdapter() {
  78.                 public void keyPressed(KeyEvent evt) {
  79.                         if(evt.getKeyCode() == KeyEvent.VK_SPACE || evt.getKeyCode() == KeyEvent.VK_ENTER)
  80.                                 showMainWindow((String)list.getSelectedValue());
  81.                 }
  82.         });
  83.         this.list.setSize(250, this.frame.getHeight());
  84.         this.list.setMinimumSize(new Dimension(200, this.frame.getHeight()));
  85.         this.list.setMaximumSize(new Dimension(200, this.frame.getHeight()));
  86.         return this.list;
  87.     }
  88.    
  89.     private void showMainWindow(String win) {
  90.         JPanel alignLeftTop = new JPanel(new GridLayout(1, 1));
  91.         if(win.equals(this.lMC[0]))
  92.                 alignLeftTop.add(this.createOverviewPanel());
  93.         else if(win.equals(this.lMC[1]))
  94.                 alignLeftTop.add(this.createDomainPanel());
  95.         else if(win.equals(this.lMC[2]))
  96.                 alignLeftTop.add(this.createServerPanel());
  97.         System.out.println("Now showing: " + win);
  98.         this.rightPanel.add(alignLeftTop);
  99.         this.rightPanel.setVisible(true);
  100.         System.out.println(this.rightPanel.getX() + " " + this.rightPanel.getY());
  101.         System.out.println(this.rightPanel.getSize());
  102.         if(win != null)
  103.                 this.frame.setTitle(this.mainTitle + " - " + win);
  104.     }
  105.    
  106.     private JPanel createDomainPanel() {
  107.         if(this.dp == null)
  108.                 this.dp = new DomainPanel();
  109.         this.dp.setVisible(true);
  110.         return this.dp;
  111.     }
  112.    
  113.     private JPanel createOverviewPanel() {
  114.         if(this.op == null)
  115.                 this.op = new JPanel(new BorderLayout());
  116.         this.op.add(new JButton("Ok!"), BorderLayout.CENTER);
  117.         this.op.setVisible(true);
  118.         return this.op;
  119.     }
  120.    
  121.     private JPanel createServerPanel() {
  122.         if(this.servp == null)
  123.                 this.servp = new JPanel(new BorderLayout());
  124.         this.servp.add(new JButton("NotOK!"), BorderLayout.CENTER);
  125.         this.servp.setVisible(true);
  126.         return this.servp;
  127.     }
  128.    
  129.     private void createAndShowGUI() {
  130.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  131.             public void run() {
  132.                 frame.setVisible(true);
  133.             }
  134.         });
  135.     }    
  136.    
  137.     private JFrame frame;
  138.     private JScrollPane rightPanel;
  139.     private JSplitPane sp;
  140.     private String mainTitle;
  141.     private DomainPanel dp;
  142.     private JPanel op;
  143.     private JPanel servp;
  144.     private JList list;
  145.     private final String[] menuP = new String[] {"File", "Edit", "Search", "View", "Help"};
  146.     private final int[] menuPm = new int[] {KeyEvent.VK_F, KeyEvent.VK_E, KeyEvent.VK_S, KeyEvent.VK_V, KeyEvent.VK_H};
  147.     private final String[][] menuI = new String[][] {{"Exit"}, {"Copy", "Cut","Past"},{"Search...", "Customer...", "Domain...", "Server...", "Bill..."}, {"Window", "Zoom"}, {"About..."}};
  148.     private final int[][] menuIm = new int[][] {{KeyEvent.VK_E}, {KeyEvent.VK_C, KeyEvent.VK_U, KeyEvent.VK_P}, {KeyEvent.VK_F, KeyEvent.VK_C, KeyEvent.VK_D, KeyEvent.VK_S, KeyEvent.VK_B}, {KeyEvent.VK_W, KeyEvent.VK_Z},{KeyEvent.VK_A}};
  149.     private final KeyStroke[][] menuIa = new KeyStroke[][] {{KeyStroke.getKeyStroke(KeyEvent.VK_F4, ActionEvent.ALT_MASK)}, {KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK), KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK), KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK)}, {KeyStroke.getKeyStroke(KeyEvent.VK_F, ActionEvent.CTRL_MASK)}};
  150.     private final DefaultListModel lM = new DefaultListModel();
  151.     private final String[] lMC = {"Overview", "Domains", "Server", "Buchhaltung", "Kunden" };
  152.     private static final long serialVersionUID = 6832848017248114414L;
  153.  
  154. }

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN