Ich bin immer noch dabei mein kleinen Karteneditor zu bastel, nachdem ich längere Zeit nicht weiter gemacht habe, habe ich mich heute mal wieder dran gesetzt. Aber ich bekomme mein Problem immer noch nicht in den Griff, denn meine Hauptkarte wird nicht an korekter Position angezeigt, oder ehr da wo ich sie haben will.
Ich will sie in der freien Fläche des Fenster haben, aber ich bekomme z.B. überschneidungen mit der Toolbar.
Könnte mir jemand helfen dieses Prblem in den Griff zu bekommen???
und warum darf der Beitragstitel nicht : "Problem mit Karteneditor Layout" heißten???
mfg. Dagobert
Ich will sie in der freien Fläche des Fenster haben, aber ich bekomme z.B. überschneidungen mit der Toolbar.
Könnte mir jemand helfen dieses Prblem in den Griff zu bekommen???
Code:
private void createGUI(int width, int height){
this.tiles = new HashMap<Integer, Tile>();
// Menüleiste mit Elmenten wie Datei laden, zoom, u.a.
menu = new JMenuBar();
// Die vier Root-Menüs
JMenu dateiMenu = new JMenu("Datei" , false);
JMenu ansichtMenu = new JMenu("Ansicht", false);
JMenu extraMenu = new JMenu("Extra", false);
JMenu hilfeMenu = new JMenu("Hilfe", false);
// Das Dateimenü
JMenuItem ladenMenu = new JMenuItem("Laden");
ladenMenu.addActionListener(this);
dateiMenu.add(ladenMenu);
JMenuItem speichernMenu = new JMenuItem("Speichern");
speichernMenu.addActionListener(this);
dateiMenu.add(speichernMenu);
JMenuItem speicherUnterMenue = new JMenuItem("Speichern unter");
speicherUnterMenue.addActionListener(this);
dateiMenu.add(speicherUnterMenue);
JMenuItem beendenMenu = new JMenuItem("Beenden");
beendenMenu.addActionListener(this);
dateiMenu.add(beendenMenu);
// Das Ansichentmenü
JMenuItem zoomH = new JMenuItem("Zoom+");
zoomH.addActionListener(this);
ansichtMenu.add(zoomH);
JMenuItem zoomZ = new JMenuItem("Zoom-");
zoomZ.addActionListener(this);
ansichtMenu.add(zoomZ);
JMenuItem standartGroese = new JMenuItem("Normal");
standartGroese.addActionListener(this);
ansichtMenu.add(standartGroese);
// Das Extramenü
JMenuItem update = new JMenuItem("Update");
update.addActionListener(this);
extraMenu.add(update);
JMenuItem ueber = new JMenuItem("Über");
ueber.addActionListener(this);
extraMenu.add(ueber);
// Das Hilfemenü
JMenuItem hilfe = new JMenuItem("Hilfe");
hilfe.addActionListener(this);
hilfeMenu.add(hilfe);
// Die Menüleiste mit den Untermenüs beleben
menu.add(dateiMenu);
menu.add(ansichtMenu);
menu.add(extraMenu);
menu.add(hilfeMenu);
// Erstellen des Root Panels
setPreferredSize(new Dimension(width, height));
setSize(new Dimension(width, height));
setLayout(new BorderLayout());
// Toolbar mit Werkzeugen die man für den Editor braucht
JToolBar tools = new JToolBar("Werkzeugleiste", JToolBar.HORIZONTAL);
tools.setFloatable(false);
tools.setPreferredSize(new Dimension(400, 30));
add(tools, BorderLayout.NORTH);
// Neue Karte Button
JButton neu = new JButton("Neue Karte");
neu.setPreferredSize(new Dimension(30,30));
neu.setSize(new Dimension(30,30));
neu.addActionListener(this);
tools.add(neu);
// Karte Laden Button
JButton oeffnen = new JButton("Laden");
oeffnen.setPreferredSize(new Dimension(30,30));
oeffnen.setSize(new Dimension(30,30));
oeffnen.addActionListener(this);
tools.add(oeffnen);
// Speicher Button
JButton speichern = new JButton("Speichern");
neu.setPreferredSize(new Dimension(30,30));
neu.setSize(new Dimension(30,30));
neu.addActionListener(this);
tools.add(speichern);
JButton zoomin = new JButton("Zoom+");
zoomin.setSize(new Dimension(30,30));
zoomin.addActionListener(this);
tools.add(zoomin);
JButton zoomout = new JButton("Zoom-");
zoomout.setSize(new Dimension(30,30));
zoomout.addActionListener(this);
tools.add(zoomout);
// Panels für die verfügbaren Tiles & Objekte
JPanel tilesPanel = new JPanel();
JPanel objectPanel = new JPanel();
// Beide Panels in ein Tabb-Dingen :D
JTabbedPane objectTabbed = new JTabbedPane();
objectTabbed.setPreferredSize(new Dimension(200, 300));
objectTabbed.addTab("Tiles", tilesPanel);
objectTabbed.addTab("Objekte", objectPanel);
// Tiles laden
loadTiles();
// Für jede Tile ein Button erstellen
tilesButtons = new Vector<JButton>();
for(int i = 0; i < tiles.size(); i++){
JButton button = new JButton(new ImageIcon(tiles.get(i).getExampleImage()));
button.setSize(new Dimension(50, 50));
button.setPreferredSize(new Dimension(50, 50));
button.setName(String.valueOf(i));
button.addActionListener(this);
tilesButtons.add(button);
tilesPanel.add(button, FlowLayout.LEFT);
}
// Minikarte
JPanel miniMap = new JPanel();
miniMap.setBackground(Color.green);
miniMap.setPreferredSize(new Dimension(190,190));
// East Panel
JPanel eastPanel = new JPanel();
eastPanel.setPreferredSize(new Dimension(200,200));
eastPanel.add(objectTabbed);
eastPanel.add(miniMap);
add(eastPanel, BorderLayout.EAST);
// Dia Hauptkarte
mapContainer = new Container();
// mapContainer.setBounds(5, tools.getX()+ tools.getHeight()+5, 100, 100);
mapContainer.setSize(new Dimension(100,100));
mapContainer.addMouseListener(this);
mapContainer.addMouseMotionListener(this);
mapContainer.addMouseWheelListener(this);
add(mapContainer, BorderLayout.CENTER);
// Emulation des Displays
display = new Rectangle2D.Double(mapContainer.getX() , mapContainer.getY(), mapContainer.getWidth(), mapContainer.getHeight());
// Die verschiedenen Curser initalisieren
standart = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
invisible =
Toolkit.getDefaultToolkit().createCustomCursor(
Toolkit.getDefaultToolkit().getImage(""),
new Point(0,0),
"invisible");
// Die Statusleiste
status = new JPanel();
status.setBackground(Color.red);
add(status, BorderLayout.SOUTH);
statusInfo = new JLabel("Keine Karte geöffnet");
statusInfo.setDoubleBuffered(true);
status.add(statusInfo);
statusbar = new JProgressBar();
statusbar.setVisible(false);
status.add(statusbar);
// Fenster erstellen
frame = new JFrame();
frame.setPreferredSize(new Dimension(width, height));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setTitle("Map-Editor V. 1.1");
frame.getContentPane().add(this);
frame.pack();
frame.setVisible(true);
Thread t = new Thread(this);
t.start();
frame.setJMenuBar(menu);
}
und warum darf der Beitragstitel nicht : "Problem mit Karteneditor Layout" heißten???
mfg. Dagobert