Schaltflächen bei JFrame entfernen

ich_Schmiddy

Mitglied
Hallo!

Gibt es eine Möglichkeit die drei Knöpfe für Schließen, Verkleinern und Vergrößern eines JFrames zu entfernen ohne die ganze Titelzeile zu entfernen?

Ich kenne leider nur setUndecorated(), was aber alles entfernt....

Grüsse, Chris
 
Hallo!

Dann nimm doch einfach deinen JFrame mit undecorted(true) und Zeichne die Titelleiste selbst...

Code:
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JFrame;

/**
 * @author      Darimont<br>
 * @version     1.0<br>
 * Date of creation:  29.03.2004<br>
 * File:         SimpleTitleJFrame.java<br>
 * Modifier:     Darimont<br>
 * Revision:     Revision<br>
 * State:        Germany<br>
 */

public class SimpleTitleJFrame extends JFrame {

	private final Font font = new Font("Arial", Font.BOLD, 11);
	int oldX;
	int oldY;

	public SimpleTitleJFrame() {
		super("Test");
		setLocation(100, 100);
		setSize(320, 240);
		setUndecorated(true);

		addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent evt) {
				if (evt.getY() > 15) {
					System.exit(0);
				}
			}
		});

		addMouseMotionListener(new MouseMotionAdapter() {
			public void mouseDragged(MouseEvent evt) {

				Point p = getLocationOnScreen();
				setLocation(
					(int) (p.getX() + evt.getX()),
					(int) (p.getY() + evt.getY()));

			}
		});
	}

	public static void main(String[] args) {
		new SimpleTitleJFrame().show();
	}

	public void paint(Graphics g) {
		super.paint(g);
		paintTitleBar(g);
	}

	/**
	 * @param g
	 */
	private void paintTitleBar(Graphics g) {
		// TODO Auto-generated method stub
		final int currentWidth = (int) getSize().getWidth();
		final int height = 15;

		Graphics2D g2d = (Graphics2D) g;
		final GradientPaint gradientPaint =
			new GradientPaint(
				0,
				0,
				Color.BLUE,
				currentWidth,
				height,
				Color.RED);

		g2d.setPaint(gradientPaint);
		g2d.fillRect(0, 0, currentWidth, height);
		g2d.setColor(Color.WHITE);
		g2d.setFont(font);
		g2d.drawString(getTitle(), 5, 12);
	}

}

Gruß Tom
 
Zurück