Swing Wie programmiere ich eine eigene GUI?

lotu

Mitglied
Ich möchte eine Komponente für Dialoge programmieren, die Aussieht wie das erste Bild. Was ich bislang habe, sieht allerdings aus wie das zweite Bild.
1.) Ich frage mich, woher der Fenster-Balken unter der Titelleiste kommt.
2.) Wie lässt sich das Look&Feel realisieren, dass man bei gedrückter Maustaste über dem gelb-schwarzen Balken das Fenster verschieben kann?
3.) Der weiße Rahmen um das Bild ist transparent, und sieht nur auf dem Screenshot weiß aus. Allerdings nimmt er immer die Farbe an von dem Fenster das darunter liegt während er aktiv ist und bewegt wird, ist also nicht wirklich transparent. wie kann ich das ändern?
4.) Wie kann ich den InternalFrame modal anzeigen lassen, während weitere InternalFrames geöffnet sind?
Screenshot.pngDialog Example Small.jpg
hier der Sourcecode:
Java:
package gui;

import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

import javax.swing.JButton;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;

/**
 * Abstract Basic Class for Dialogs which are displayed centered in the
 * middle of the screen in modal or non-modal mode
 * 
 * @author Lord
 *
 */
@SuppressWarnings("serial")
public class BasicDialog extends JInternalFrame {
	class AttentionBorder implements Border {
		public void paintBorder(Component comp, Graphics g, int left, int top, int width, int height) {
			// TODO: Enforce Border do be top and down, and frame to be embedded.. then easily
			// overwriting the image can be done without creating new subimages..
			boolean toggle;
			final int BORDER = 10,						// Gibt die Höhe=Breite der Grenzen an
				edge = node_topleft.getHeight(),		// Gibt die Höhe=Breite der Eck-Kanten an
				velem = border_left.getHeight(),		// Gibt die Höhe eines vertikalen Elements an
				vborder_width = border_left.getWidth(),	// Gibt die Breite eines vertikalen Rands an 
				vframe_width = frame_left.getWidth(),	// Gibt die Breite eines vertikalen Rahmens an
				helem = border_down.getWidth(),			// Gibt die Breite eines horizontalen Elements an
				hborder_height = border_down.getHeight(),	// Gibt die Höhe eines horizontalen Rands an
				bg_width = img_background.getWidth(),	// Gibt die Breite des Hintergrundbildes an
				bg_height = img_background.getHeight(),	// Gibt die Höhe des Hintergrundbildes an
				att_width = img_attention.getWidth(),	// Gibt die Breite des Attentionbildes an
				att_height = img_attention.getHeight(),	// Gibt die Höhe des Attentionbildes an
				client_width = width - 2 * BORDER,		// Gibt die Client-Breite an (ohne Grenzen)
				client_height = height - 2 * BORDER,	// Gibt die Client-Höhe an (ohne Grenzen)
				effective_width = width - 2 * edge,		// Gibt die effektive-Breite an (ohne Kanten)
				effective_height = height - 2 * edge,	// Gibt die effektive-Höhe an (ohne Kanten)

					// f(x) = ((x-1)/2)*2+1 calculates, how many hcomponents are placed.. Number is always odd!
				hcount = ((effective_width - helem) / (2 * helem)) * 2 + 1,
					// Gibt an, wieviele horizontale Elemente nebeneinander passen
				vcount = effective_height / velem,	
					// Gibt an, wieviele vertikale Elemente nebeneinander passen
				hindent = (effective_width - hcount * helem) / 2;
					// Gibt die Einrückung der horizontalen Rahmenleiste an, damit sie mittig liegt
			int x = client_width / bg_width, 
			y = client_height / bg_height;

			int dx = client_width - (x * bg_width), dy = client_height - (y * bg_height);
			BufferedImage xcomp = null, ycomp = null, missing = null;
					
	        // Schleife, um AttentionBar zu zeichnen..
			x = client_width / att_width;
			dx = client_width - (x * att_width); 
			xcomp = null;
			if (dx > 0 ) {
				xcomp = img_attention.getSubimage(0, 0, dx, att_height);
			}
			
	        for (int i = 0; i <= x; i++) {
	        	if (i == x && xcomp != null) {
	        		g.drawImage(xcomp, i * att_width + BORDER, BORDER, null);
	        	}
	        	else {
	        		g.drawImage(img_attention, i * att_width + BORDER, BORDER, null);
	        	}
	        }

	        // Obere und Untere Begrenzung zeichnen..
	        toggle = true;
	        for (int i = 0; i < hcount; i++) {
	        	x = i * velem + edge;
	        	if (toggle) {
	        		// Draw Top Border..
	        		g.drawImage(border_top, x + hindent, 0, null);
	        	}
	        	else {
	        		// Draw Top Frame
	        		g.drawImage(frame_top, x + hindent, 0, null);
	        	}
	        	toggle = !toggle;
	        	// Draw Limiter between Attention- and Client-Section..
	    		g.drawImage(border_down, x, att_height + BORDER, null);
	        	// Draw Bottom Border..
	    		g.drawImage(border_down, x, height - hborder_height, null);
	        }
	        x = edge + effective_width - helem;
	        g.drawImage(border_top, edge, 0, null);
	        g.drawImage(border_top, x, 0, null);
	        g.drawImage(border_down, x - helem, height - hborder_height, null);
	        g.drawImage(border_down, x, height - hborder_height, null);
	        g.drawImage(border_down, x, att_height + BORDER, null);
	        g.drawImage(border_down, x - helem, att_height + BORDER, null);
	        
	        // Linke und Rechte Begrenzung zeichnen..
			// TODO: Draw from Bottom to Top, therefore in the attention-area can normal borders be placed..
	        toggle = true;
	        for (int j = 1; j <= vcount; j++) {
	        	y = height - j * velem - edge;
	        	if (toggle || j == vcount) {
	        		// Draw Left Border..
	        		g.drawImage(border_left, 0, y, null);
	        		// Draw Right Border..
	        		g.drawImage(border_right, width - vborder_width, y, null);
	        	}
	        	else {
	        		// Draw Left Frame..
	        		g.drawImage(frame_left, 0, y, null);
	        		// Draw Right Frame..
	        		g.drawImage(frame_right, width - vframe_width, y, null);
	        	}
	        	toggle = !toggle;
	        }
	        g.drawImage(border_left, 0, edge, null);
	        g.drawImage(border_right, width - edge + 1, edge, null);

	        // Setzen der 4 Ecken..
	        x = width - edge;
	        y = height - edge;
	        g.drawImage(node_topleft, 0, 0, null);
	        g.drawImage(node_topright, x, 0, null);
	        g.drawImage(node_downleft, 0, y, null);
	        g.drawImage(node_downright, x, y, null);
		}
		public Insets getBorderInsets(Component comp) {
			return new Insets(50, 20, 20, 20);
		}
		public boolean isBorderOpaque() {
			return false;
		}
	}

	private static boolean initialized = false;
	private static BufferedImage border_down, border_left, border_top, border_right, frame_top, 
			frame_left,	frame_right, node_downleft, node_downright, node_topleft, node_topright, 
			img_background, img_attention;
	private final boolean attention;
	private int height, width;
	
	public BasicDialog(int width, int height, boolean attention) {
		if (!initialized) {
			border_down 	= ImageManager.addImage("border_south", "System/Frame/border_down.png");
			border_left 	= ImageManager.addImage("border_west", "System/Frame/border_left.png");
			border_right 	= ImageManager.addImage("border_east", "System/Frame/border_right.png");
			border_top 		= ImageManager.addImage("border_north", "System/Frame/border_top.png");
			frame_top 		= ImageManager.addImage("frame_north", "System/Frame/frame_top.png");
			frame_left 		= ImageManager.addImage("frame_west", "System/Frame/frame_left.png");
			frame_right 	= ImageManager.addImage("frame_east", "System/Frame/frame_right.png");
			node_downleft 	= ImageManager.addImage("south_west", "System/Frame/node_downleft.png");
			node_downright 	= ImageManager.addImage("south_east", "System/Frame/node_downright.png");
			node_topleft 	= ImageManager.addImage("north_west", "System/Frame/node_topleft.png");
			node_topright 	= ImageManager.addImage("north_east", "System/Frame/node_topright.png");
			img_background 	= ImageManager.addImage("foreground", "sterne-blue.bmp");
			img_attention 	= ImageManager.addImage("attention", "System/attention.bmp");
			initialized = true;
		}
		setBackground(new Color(0, 0, 0, 0));
		setBorder(new AttentionBorder());
		this.height = height;
		this.width = width;
		this.attention = attention;
		
		String name = "bladeline";
		setFont(Font.decode(name + "-24"));
		this.setSize(width, height);
		this.setLocation(
				Toolkit.getDefaultToolkit().getScreenSize().width / 2 - width / 2,
				Toolkit.getDefaultToolkit().getScreenSize().height / 2 - height / 2);
		
		// Buttons erzeugen..
		setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		JButton btn_cancel = new JButton("Cancel");
		JButton btn_continue = new JButton("Continue");
		btn_continue.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Screenshot.execute();
			}
		});
		c.insets = new Insets(0,30,25,0);
		c.gridx = 0;
		c.gridy = 1;
		c.weighty = 1.0;
		c.weightx = 1.0;
		c.anchor = GridBagConstraints.SOUTHWEST;
		add(btn_cancel, c);
		c.insets = new Insets(0,0,25,30);
		c.gridx = 1;
		c.gridy = 1;
		c.weighty = 1.0;
		c.weightx = 1.0;
		c.anchor = GridBagConstraints.SOUTHEAST;
		add(btn_continue, c);
		
		// Label erzeugen..
		JLabel label = new JLabel();
		label.setText("Lorem Ipsum dolorit");
		Font font = getFont();
		label.setFont(font);
		label.setForeground(new Color(127, 127, 255));
		c.insets = new Insets(10,10,10,10);
		c.gridx = 0;
		c.gridy = 1;
		c.weighty = 1.0;
		c.weightx = 1.0;
		c.anchor = GridBagConstraints.CENTER;
		add(label, c);

		repaint();
		setVisible(true);
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		if (attention) {
			paintAttention(g);
		}
		else {
			paintNonAttention(g);
		}
	}
	protected void paintBorder(Graphics g) {
		
	}
	
	private void paintAttention(Graphics g) {
		// TODO: Enforce Border do be top and down, and frame to be embedded.. then easily
		// overwriting the image can be done without creating new subimages..
		boolean toggle;
		final int BORDER = 10,						// Gibt die Höhe=Breite der Grenzen an
			edge = node_topleft.getHeight(),		// Gibt die Höhe=Breite der Eck-Kanten an
			velem = border_left.getHeight(),		// Gibt die Höhe eines vertikalen Elements an
			vborder_width = border_left.getWidth(),	// Gibt die Breite eines vertikalen Rands an 
			vframe_width = frame_left.getWidth(),	// Gibt die Breite eines vertikalen Rahmens an
			helem = border_down.getWidth(),			// Gibt die Breite eines horizontalen Elements an
			hborder_height = border_down.getHeight(),	// Gibt die Höhe eines horizontalen Rands an
			bg_width = img_background.getWidth(),	// Gibt die Breite des Hintergrundbildes an
			bg_height = img_background.getHeight(),	// Gibt die Höhe des Hintergrundbildes an
			att_width = img_attention.getWidth(),	// Gibt die Breite des Attentionbildes an
			att_height = img_attention.getHeight(),	// Gibt die Höhe des Attentionbildes an
			client_width = width - 2 * BORDER,		// Gibt die Client-Breite an (ohne Grenzen)
			client_height = height - 2 * BORDER,	// Gibt die Client-Höhe an (ohne Grenzen)
			effective_width = width - 2 * edge,		// Gibt die effektive-Breite an (ohne Kanten)
			effective_height = height - 2 * edge,	// Gibt die effektive-Höhe an (ohne Kanten)

			// f(x) = ((x-1)/2)*2+1 calculates, how many hcomponents are placed.. Number is always odd!
			hcount = ((effective_width - helem) / (2 * helem)) * 2 + 1,
				// Gibt an, wieviele horizontale Elemente nebeneinander passen
			vcount = effective_height / velem,	
				// Gibt an, wieviele vertikale Elemente nebeneinander passen
			hindent = (effective_width - hcount * helem) / 2;
				// Gibt die Einrückung der horizontalen Rahmenleiste an, damit sie mittig liegt
		
		// Schleife um gesamten Hintergrund zu zeichnen..
		int x = client_width / bg_width, 
		y = client_height / bg_height;

		int dx = client_width - (x * bg_width), dy = client_height - (y * bg_height);
		BufferedImage xcomp = null, ycomp = null, missing = null;
		if (dx > 0 && dy > 0) {
			xcomp = img_background.getSubimage(0, 0, dx, bg_height);
			ycomp = img_background.getSubimage(0, 0, bg_width, dy);
			int xmissing = client_width - (client_width / bg_width) * bg_width;
			int ymissing = client_height - (client_height / bg_height) * bg_height;
			if (xmissing > 0 && ymissing > 0) missing = img_background.getSubimage(0, 0, xmissing, ymissing);
		}
		
		for (int i = 0; i <= x; i++) {
			for (int j = 0; j <= y; j++) {
				if (i == x && j == y && missing != null) {
					// Last
					g.drawImage(missing, BORDER + bg_width * i, BORDER + bg_height * j, null);
				}
				else if (i == x && xcomp != null) {
					// xcomp
					g.drawImage(xcomp, BORDER + bg_width * i, BORDER + bg_height * j, null);
				}
				else if (j == y && ycomp != null) {
					// ycomp
					g.drawImage(ycomp, BORDER + bg_width * i, BORDER + bg_height * j, null);
				}
				else {
					// Standard Fields..
					g.drawImage(img_background, BORDER + bg_width * i, BORDER + bg_height * j, null);
				}
			}
		}

        // Schleife, um AttentionBar zu zeichnen..
		x = client_width / att_width;
		dx = client_width - (x * att_width); 
		xcomp = null;
		if (dx > 0 ) {
			xcomp = img_attention.getSubimage(0, 0, dx, att_height);
		}
		
        for (int i = 0; i <= x; i++) {
        	if (i == x && xcomp != null) {
        		g.drawImage(xcomp, i * att_width + BORDER, BORDER, null);
        	}
        	else {
        		g.drawImage(img_attention, i * att_width + BORDER, BORDER, null);
        	}
        }

        // Obere und Untere Begrenzung zeichnen..
        toggle = true;
        for (int i = 0; i < hcount; i++) {
        	x = i * velem + edge;
        	if (toggle) {
        		// Draw Top Border..
        		g.drawImage(border_top, x + hindent, 0, null);
        	}
        	else {
        		// Draw Top Frame
        		g.drawImage(frame_top, x + hindent, 0, null);
        	}
        	toggle = !toggle;
        	// Draw Limiter between Attention- and Client-Section..
    		g.drawImage(border_down, x, att_height + BORDER, null);
        	// Draw Bottom Border..
    		g.drawImage(border_down, x, height - hborder_height, null);
        }
        x = edge + effective_width - helem;
        g.drawImage(border_top, edge, 0, null);
        g.drawImage(border_top, x, 0, null);
        g.drawImage(border_down, x - helem, height - hborder_height, null);
        g.drawImage(border_down, x, height - hborder_height, null);
        g.drawImage(border_down, x, att_height + BORDER, null);
        g.drawImage(border_down, x - helem, att_height + BORDER, null);
        
        // Linke und Rechte Begrenzung zeichnen..
		// TODO: Draw from Bottom to Top, therefore in the attention-area can normal borders be placed..
        toggle = true;
        for (int j = 1; j <= vcount; j++) {
        	y = height - j * velem - edge;
        	if (toggle || j == vcount) {
        		// Draw Left Border..
        		g.drawImage(border_left, 0, y, null);
        		// Draw Right Border..
        		g.drawImage(border_right, width - vborder_width, y, null);
        	}
        	else {
        		// Draw Left Frame..
        		g.drawImage(frame_left, 0, y, null);
        		// Draw Right Frame..
        		g.drawImage(frame_right, width - vframe_width, y, null);
        	}
        	toggle = !toggle;
        }
        g.drawImage(border_left, 0, edge, null);
        g.drawImage(border_right, width - edge + 1, edge, null);

        // Setzen der 4 Ecken..
        x = width - edge;
        y = height - edge;
        g.drawImage(node_topleft, 0, 0, null);
        g.drawImage(node_topright, x, 0, null);
        g.drawImage(node_downleft, 0, y, null);
        g.drawImage(node_downright, x, y, null);
	}
	private void paintNonAttention(Graphics g) {
		// Not implemented yet
	}

	public boolean hasAttention() {
		return attention;
	}

}
 
Zuletzt bearbeitet:

Foxei

Bekanntes Mitglied
Hallo lotu,
ich habe hier ein Tutorial für dich es ist etwas alt deshalb werden die Frame-Border-Buttons auch nicht mehr Unterstützt aber den Ramen und die Titelbar kannst du noch machen und dann hättest du genau das gesuchte.
  • Du kannst es Bewegen
  • Du hast keinen unpasenden Ttitelbar mehr

Tutorial

Gruß Simon
 

lotu

Mitglied
Hallo Simon,
vielen Dank für die Antwort :)
leider kriege ich das mit Nimbus nicht hin.. gibt es auch eine Möglichkeit das Look and Feel von Java direkt zu beeinflussen? zb indem man eine Border definiert und dafür das Look and Feel festlegt, wie es sich verhalten soll? Wenn ja, könnte vllt mal jemand ein Codebeispiel posten, wie man das am besten anfängt? vielen dank schonmal :)
 

Foxei

Bekanntes Mitglied
Hallo Lotu,
wenn du mir die Bild Dateien schickst die verwendest kann ich dir dein Code Beispiel vervollständigen.
 

Foxei

Bekanntes Mitglied
Hallo lotu,
ich habe das nun so gelöst. Ich verwende einen JDialog kein JInternelFrame. Du kannst die Frame weiterhin verschieben und vergrößern wie Gewohnt. Da das Gelb Schwarze nur ein Overlauf auf der TitelBar ist kann man leider noch, mit einem Klick in die Rechte obere ecke, den Dialog schließen dies könntest du aber mit einem WindowListener Abfangen. Ich nutze auch keine Screenshots sonder habe den Hintergrund Transparent gemacht.

Da Ich mit einer AbstractBorder arbeite sind die Haken leider nicht möglich ohne alle Listener für Resize und Move neu zu schreiben.

Gruß Simon

SpaceBorder
Java:
package internal;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.border.AbstractBorder;

public class Spaceborder extends AbstractBorder{
	private BufferedImage[] corner=new BufferedImage[4];
	public Spaceborder() {
		try {
			corner[0]=ImageIO.read(this.getClass().getResource("node_topright.png"));
			corner[1]=ImageIO.read(this.getClass().getResource("node_downright.png"));
			corner[2]=ImageIO.read(this.getClass().getResource("node_downleft.png"));
			corner[3]=ImageIO.read(this.getClass().getResource("node_topleft.png"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	@Override
	public Insets getBorderInsets(Component c) {
		return new Insets(12,12,12,12);
	}
	
	@Override
	public Insets getBorderInsets(Component c, Insets insets) {
		return new Insets(20, 20, 20, 20);
	}
	
	@Override
	public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
		//Corners
		g.drawImage(corner[0], width-13, 0, 13, 13, null);
		g.drawImage(corner[1], width-13, height-13, 13, 13, null);
		g.drawImage(corner[2], 0, height-13, 13, 13, null);
		g.drawImage(corner[3], 0, 0, 13, 13, null);
		
		//Left Border
		g.setColor(new Color(21,21,21));
		g.drawLine(4, 13, 4, height-14);
		
		g.setColor(new Color(187,183,177));
		g.drawLine(5, 13, 5, height-14);
	
		g.setColor(new Color(134,129,125));
		g.drawLine(6, 13, 6, height-14);
		g.drawLine(7, 13, 7, height-14);
		
		g.setColor(new Color(21,21,21));
		g.drawLine(8, 13, 8, height-14);
		
		g.setColor(new Color(97,96,96));
		g.drawLine(9, 13, 9, height-14);
		
		g.setColor(new Color(145,145,145));
		g.drawLine(10, 13, 10, height-14);
		
		g.setColor(new Color(178,177,177));
		g.drawLine(11, 13, 11, height-14);
		
		//Right Border
		g.setColor(new Color(21,21,21));
		g.drawLine(width-5, 13, width-5, height-14);
		
		g.setColor(new Color(187,183,177));
		g.drawLine(width-6, 13, width-6, height-14);
			
		g.setColor(new Color(134,129,125));
		g.drawLine(width-7, 13, width-7, height-14);
		g.drawLine(width-8, 13, width-8, height-14);
				
		g.setColor(new Color(21,21,21));
		g.drawLine(width-9, 13, width-9, height-14);
				
		g.setColor(new Color(97,96,96));
		g.drawLine(width-10, 13, width-10, height-14);
		
		g.setColor(new Color(145,145,145));
		g.drawLine(width-11, 13, width-11, height-14);
				
		g.setColor(new Color(178,177,177));
		g.drawLine(width-12, 13, width-12, height-14);
		
		//Top Border
		g.setColor(new Color(21,21,21));
		g.drawLine(13, 4, width-14, 4);
		
		g.setColor(new Color(187,183,177));
		g.drawLine(13, 5, width-14, 5);
				
		g.setColor(new Color(134,129,125));
		g.drawLine(13, 6, width-14, 6);
		g.drawLine(13, 7, width-14, 7);
						
		g.setColor(new Color(21,21,21));
		g.drawLine(13, 8, width-14, 8);
					
		g.setColor(new Color(97,96,96));
		g.drawLine(13, 9, width-14, 9);
				
		g.setColor(new Color(145,145,145));
		g.drawLine(13, 10, width-14, 10);
				
		g.setColor(new Color(178,177,177));
		g.drawLine(13, 11, width-14, 11);
		
		//Bottom Border
		g.setColor(new Color(21,21,21));
		g.drawLine(13, height-5, width-14, height-5);
				
		g.setColor(new Color(187,183,177));
		g.drawLine(13, height-6, width-14, height-6);
					
		g.setColor(new Color(134,129,125));
		g.drawLine(13, height-7, width-14, height-7);
		g.drawLine(13, height-8, width-14, height-8);
								
		g.setColor(new Color(21,21,21));
		g.drawLine(13, height-9, width-14, height-9);
						
		g.setColor(new Color(97,96,96));
		g.drawLine(13, height-10, width-14, height-10);
						
		g.setColor(new Color(145,145,145));
		g.drawLine(13, height-11, width-14, height-11);
						
		g.setColor(new Color(178,177,177));
		g.drawLine(13, height-12, width-14, height-12);
		
	}

	@Override
	public boolean isBorderOpaque() {
		return false;
	}
}

BasicDialog
Java:
package internal;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class BasicDialog extends JDialog {
	public BasicDialog(JFrame frame,boolean block) {
		super(frame,block);
		setSize(500, 200);
		setLocationRelativeTo(frame);
		getLayeredPane().setLayout(new BorderLayout());
		getRootPane().setBorder(new Spaceborder());
		setBackground(new Color(0,0,0,0));
		setLayout(new BorderLayout());
	
		TitlePane titlePane=new TitlePane();
		
		//Deine neue ContnetPane alles auf sie Adden
		ContentPane contentPane=new ContentPane();

		
		//Ende
		getLayeredPane().add(titlePane,BorderLayout.NORTH);
		getLayeredPane().setLayer(titlePane, 10);
		getLayeredPane().add(contentPane,BorderLayout.CENTER);
		getLayeredPane().setLayer(contentPane, 10);
		setVisible(true);
	}
}
class TitlePane extends JPanel{
	public TitlePane() {
		setPreferredSize(new Dimension(0,32));
		setOpaque(false);
	}
	@Override
	protected void paintComponent(Graphics g) {
		int height=getHeight();
		int width=getWidth();
		g.setColor(new Color(0,0,0));
		g.fillRect(0, 0, getWidth(), getHeight());
		
		g.setColor(new Color(255,242,0));
		for(int i=0;i<getWidth();i++){
			if(i%64==0){
				g.fillPolygon(new int[]{i,i+32,i+64,i+32}, new int[]{32,0,0,32}, 4);
			}
		}
		//Bottom Border
		g.setColor(new Color(21,21,21));
		g.drawLine(0, height-1, width, height-1);
						
		g.setColor(new Color(187,183,177));
		g.drawLine(0, height-2, width, height-2);
					
		g.setColor(new Color(134,129,125));
		g.drawLine(0, height-3, width, height-3);
		g.drawLine(0, height-4, width, height-4);
										
		g.setColor(new Color(21,21,21));
		g.drawLine(0, height-5, width, height-5);
								
		g.setColor(new Color(97,96,96));
		g.drawLine(0, height-6, width, height-6);
								
		g.setColor(new Color(145,145,145));
		g.drawLine(0, height-7, width, height-7);
								
		g.setColor(new Color(178,177,177));
		g.drawLine(0, height-8, width, height-8);
		super.paintComponent(g);
	}
}
class ContentPane extends JPanel{
	private BufferedImage img;
	public ContentPane() {
		try {
			img=ImageIO.read(this.getClass().getResource("sterne-blue.bmp"));
		} catch (IOException e) {
			e.printStackTrace();
		}
		setOpaque(false);
	}
	@Override
	protected void paintComponent(Graphics g) {
		g.drawImage(img, 0, 0,getWidth(),getHeight(), this);
		super.paintComponent(g);
	}
}

Start
In deiner Main Methode
Java:
JDialog.setDefaultLookAndFeelDecorated(true);
 

Anhänge

  • Space.PNG
    Space.PNG
    21,3 KB · Aufrufe: 44

lotu

Mitglied
hallo Simon,
zunächst einmal vielen, vielen Dank für deine Mühe :D
wie erzeugst Du denn das Fenster? Ich versuche es auf ein JDesktopPane zu legen, was scheinbar nicht mehr funktioniert, da es nicht mehr von JInternalFrame erbt. Bei mir sieht es jetzt folgendermaßen aus:
Neu.png
 

Foxei

Bekanntes Mitglied
Hallo lotu,
naja es ist jetzt ein JDialog das ist ein PoupFenster das sich vor das eigentliche Programm schiebt und dieses Blocked. Du musst es nicht mehr auf eine JInternalFrame legen.
 

Foxei

Bekanntes Mitglied
Mach dir keine mühe mein Beispiel einzubinden. Ich habe die hacken doch hin bekommen muss aber noch kurz weg. Bekommst heute Abend.
 

Foxei

Bekanntes Mitglied
Hallo lotu,
also ich erkläre nochmal alles. Mit einer JInternalFrame lässt sich das nicht so realisieren wie du es gerne hättest also vergiss sie!!!!
Ich empfehle dir stattdessen eine JDialog da du ja sowieso einen Programmieren wolltest. Um dein Problem zu realisieren muss man einen JDialog aber ganz schön auseinander nehmen wenn man kein eigenes lnf erstellen möchte.

Ich muss echt sagen das was du da haben möchtest ist das non plus Ultra der Swing Programierung hat mich etwas ins Schwitzen gebracht das Teil. :D
Gruß Simon
ConfirmeDialoge
Java:
package internal;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class ConfirmeDialog extends JDialog {
	private int result=-1;
	public ConfirmeDialog(JFrame frame,boolean block) {
		super(frame,block);
		setSize(500, 200);
		setLocationRelativeTo(frame);
		getLayeredPane().setLayout(new BorderLayout());
		getRootPane().setBorder(new Spaceborder());
		setBackground(new Color(0,0,0,0));
		setLayout(new BorderLayout());
	
		TitlePane titlePane=new TitlePane();
		
		//Deine neue ContnetPane alles auf sie Adden
		JPanel contentPane=new JPanel();
		contentPane.setOpaque(false);
		contentPane.setLayout(new BorderLayout());
		
		JLabel lbl=new JLabel("Möchten sie Wirklich Schließen?");
		lbl.setFont(new Font("Arial", Font.BOLD, 16));
		lbl.setForeground(new Color(80,70,200));
		lbl.setHorizontalAlignment(SwingConstants.CENTER);
		contentPane.add(lbl,BorderLayout.CENTER);
		
		JPanel buttonsPane=new JPanel();
		buttonsPane.setLayout(new FlowLayout(FlowLayout.TRAILING));
		buttonsPane.setOpaque(false);
		contentPane.add(buttonsPane,BorderLayout.SOUTH);
		
		JButton btnCancel=new JButton("Cancel");
		btnCancel.addActionListener(e->close(JOptionPane.CANCEL_OPTION));
		buttonsPane.add(btnCancel);
		
		JButton btnCon=new JButton("Continue");
		btnCon.addActionListener(e->close(JOptionPane.OK_OPTION));
		buttonsPane.add(btnCon);
		//Ende
		getLayeredPane().add(titlePane,BorderLayout.NORTH);
		getLayeredPane().setLayer(titlePane, 10);
		getLayeredPane().add(contentPane,BorderLayout.CENTER);
		getLayeredPane().setLayer(contentPane, 10);
		
		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				if(result!=-1)
					dispose();
			}
		});
	}
	public void close(int reason){
		result=reason;
		dispose();
	}
	public int getResult(){
		return result;
	}
}
class TitlePane extends JPanel{
	public TitlePane() {
		setPreferredSize(new Dimension(0,32));
		setOpaque(false);
	}
	@Override
	protected void paintComponent(Graphics g) {
		int height=getHeight();
		int width=getWidth();
		g.setColor(new Color(0,0,0));
		g.fillRect(0, 0, getWidth(), getHeight());
		
		g.setColor(new Color(255,242,0));
		int trans=-8-13;
		for(int i=0;i<getWidth();i++){
			if(i%64==0){
				g.fillPolygon(new int[]{i+trans,i+trans+32,i+trans+64,i+trans+32}, new int[]{32,0,0,32}, 4);
			}
		}
		
		//Bottom Border
		g.setColor(new Color(21,21,21));
		g.drawLine(0, height-1, width, height-1);
						
		g.setColor(new Color(187,183,177));
		g.drawLine(0, height-2, width, height-2);
					
		g.setColor(new Color(134,129,125));
		g.drawLine(0, height-3, width, height-3);
		g.drawLine(0, height-4, width, height-4);
										
		g.setColor(new Color(21,21,21));
		g.drawLine(0, height-5, width, height-5);
								
		g.setColor(new Color(97,96,96));
		g.drawLine(0, height-6, width, height-6);
								
		g.setColor(new Color(145,145,145));
		g.drawLine(0, height-7, width, height-7);
								
		g.setColor(new Color(178,177,177));
		g.drawLine(0, height-8, width, height-8);
	}
}
Spaceborder
Java:
package internal;

import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.border.AbstractBorder;

public class Spaceborder extends AbstractBorder{
	private BufferedImage[] corner=new BufferedImage[4];
	private BufferedImage[] hock=new BufferedImage[3];
	private BufferedImage img;
	public Spaceborder() {
		try {
			img=ImageIO.read(this.getClass().getResource("sterne-blue.bmp"));
			hock[0]=ImageIO.read(this.getClass().getResource("frame_left.png"));
			hock[1]=ImageIO.read(this.getClass().getResource("frame_top.png"));
			hock[2]=ImageIO.read(this.getClass().getResource("frame_right.png"));
			corner[0]=ImageIO.read(this.getClass().getResource("node_topright.png"));
			corner[1]=ImageIO.read(this.getClass().getResource("node_downright.png"));
			corner[2]=ImageIO.read(this.getClass().getResource("node_downleft.png"));
			corner[3]=ImageIO.read(this.getClass().getResource("node_topleft.png"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	@Override
	public Insets getBorderInsets(Component c) {
		return new Insets(20,20,20,20);
	}
	
	@Override
	public Insets getBorderInsets(Component c, Insets insets) {
		return new Insets(20, 20, 20, 20);
	}
	
	@Override
	public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
		g.setColor(new Color(0,0,0));
		g.fillRect(7, 12, width-14, 32);
		
		g.setColor(new Color(255,242,0));
		for(int i=0;i<width;i++){
			if(i%64==0){
				g.fillPolygon(new int[]{i+7,i+32+7,i+64+7,i+32+7}, new int[]{32+12,0+12,0+12,32+12}, 4);
			}
		}
		g.clearRect(width-12, 0, 32, 64);
		
		
		//Mid Border
		g.setColor(new Color(21,21,21));
		g.drawLine(12, 51, width-13, 51);
					
		g.setColor(new Color(187,183,177));
		g.drawLine(12, 50, width-13, 50);
							
		g.setColor(new Color(134,129,125));
		g.drawLine(12, 49, width-13, 49);
		g.drawLine(12, 48, width-13, 48);
										
		g.setColor(new Color(21,21,21));
		g.drawLine(12, 47, width-13, 47);
								
		g.setColor(new Color(97,96,96));
		g.drawLine(12, 46, width-13, 46);
								
		g.setColor(new Color(145,145,145));
		g.drawLine(12, 45, width-13, 45);
								
		g.setColor(new Color(178,177,177));
		g.drawLine(12, 44, width-13, 44);
		
		g.drawImage(img, 12, 52, width-24, height-52-12, null);
		
		//Corners
		g.drawImage(corner[0], width-13, 0, 13, 13, null);
		g.drawImage(corner[1], width-13, height-13, 13, 13, null);
		g.drawImage(corner[2], 0, height-13, 13, 13, null);
		g.drawImage(corner[3], 0, 0, 13, 13, null);
		
		//Left Border
		g.setColor(new Color(21,21,21));
		g.drawLine(4, 13, 4, height-14);
		
		g.setColor(new Color(187,183,177));
		g.drawLine(5, 13, 5, height-14);
	
		g.setColor(new Color(134,129,125));
		g.drawLine(6, 13, 6, height-14);
		g.drawLine(7, 13, 7, height-14);
		
		g.setColor(new Color(21,21,21));
		g.drawLine(8, 13, 8, height-14);
		
		g.setColor(new Color(97,96,96));
		g.drawLine(9, 13, 9, height-14);
		
		g.setColor(new Color(145,145,145));
		g.drawLine(10, 13, 10, height-14);
		
		g.setColor(new Color(178,177,177));
		g.drawLine(11, 13, 11, height-14);
		
		g.drawImage(hock[0], 0, (int)Math.round(height*1.0/40.0*13.0), 20, 22, null);
		g.drawImage(hock[0], 0, (int)Math.round(height*1.0/40.0*19.0), 20, 22, null);
		g.drawImage(hock[0], 0, (int)Math.round(height-height*1.0/40.0*15.0), 20, 22, null);
		g.drawImage(hock[0], 0, (int)Math.round(height-height*1.0/40.0*9.0), 20, 22, null);
		
		//Right Border
		g.setColor(new Color(21,21,21));
		g.drawLine(width-5, 13, width-5, height-14);
		
		g.setColor(new Color(187,183,177));
		g.drawLine(width-6, 13, width-6, height-14);
			
		g.setColor(new Color(134,129,125));
		g.drawLine(width-7, 13, width-7, height-14);
		g.drawLine(width-8, 13, width-8, height-14);
				
		g.setColor(new Color(21,21,21));
		g.drawLine(width-9, 13, width-9, height-14);
				
		g.setColor(new Color(97,96,96));
		g.drawLine(width-10, 13, width-10, height-14);
		
		g.setColor(new Color(145,145,145));
		g.drawLine(width-11, 13, width-11, height-14);
				
		g.setColor(new Color(178,177,177));
		g.drawLine(width-12, 13, width-12, height-14);
		
		g.drawImage(hock[2], width-20, (int)Math.round(height*1.0/40.0*13.0), 20, 22, null);
		g.drawImage(hock[2], width-20, (int)Math.round(height*1.0/40.0*19.0), 20, 22, null);
		g.drawImage(hock[2], width-20, (int)Math.round(height-height*1.0/40.0*15.0), 20, 22, null);
		g.drawImage(hock[2], width-20, (int)Math.round(height-height*1.0/40.0*9.0), 20, 22, null);
		
		//Top Border
		g.setColor(new Color(21,21,21));
		g.drawLine(13, 4, width-14, 4);
		
		g.setColor(new Color(187,183,177));
		g.drawLine(13, 5, width-14, 5);
				
		g.setColor(new Color(134,129,125));
		g.drawLine(13, 6, width-14, 6);
		g.drawLine(13, 7, width-14, 7);
						
		g.setColor(new Color(21,21,21));
		g.drawLine(13, 8, width-14, 8);
					
		g.setColor(new Color(97,96,96));
		g.drawLine(13, 9, width-14, 9);
				
		g.setColor(new Color(145,145,145));
		g.drawLine(13, 10, width-14, 10);
				
		g.setColor(new Color(178,177,177));
		g.drawLine(13, 11, width-14, 11);
		
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*4.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*15.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*26.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*37.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*48.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*59.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*70.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*81.0), 0, 20, 22, null);
		g.drawImage(hock[1], (int)Math.round(width*1.0/100.0*92.0), 0, 20, 22, null);
		
		//Bottom Border
		g.setColor(new Color(21,21,21));
		g.drawLine(13, height-5, width-14, height-5);
				
		g.setColor(new Color(187,183,177));
		g.drawLine(13, height-6, width-14, height-6);
					
		g.setColor(new Color(134,129,125));
		g.drawLine(13, height-7, width-14, height-7);
		g.drawLine(13, height-8, width-14, height-8);
								
		g.setColor(new Color(21,21,21));
		g.drawLine(13, height-9, width-14, height-9);
						
		g.setColor(new Color(97,96,96));
		g.drawLine(13, height-10, width-14, height-10);
						
		g.setColor(new Color(145,145,145));
		g.drawLine(13, height-11, width-14, height-11);
						
		g.setColor(new Color(178,177,177));
		g.drawLine(13, height-12, width-14, height-12);
		
	}

	@Override
	public boolean isBorderOpaque() {
		return false;
	}
}
Main
Java:
package internal;

import javax.swing.JDialog;
import javax.swing.JOptionPane;

public class Main {
	public static void main(String[] args) {
		JDialog.setDefaultLookAndFeelDecorated(true);
		
		ConfirmeDialog dialog=new ConfirmeDialog(null, true);
		dialog.setVisible(true);
		if(dialog.getResult()==JOptionPane.OK_OPTION)
			System.out.println("User pressed Continue");
		else
			System.out.println("User pressed Cancel");
	}

}
 

Anhänge

  • Space1.PNG
    Space1.PNG
    24,9 KB · Aufrufe: 46

lotu

Mitglied
Hallo Simon,
wow, das ist wirklich fantastisch! :D
Tausend Dank dafür, das ist wirklich genauso wie ich es mir erträumt hatte^^
Das einzige, was bei mir nicht funktioniert ist
Java:
btnCancel.addActionListener(e->close(JOptionPane.CANCEL_OPTION));
und analog beim Continue-Button, weil er "e" nicht kennt..
 

Foxei

Bekanntes Mitglied
Dein Projekt ist in Java 7 :D
Da heißt es dann:
Java:
JButton btnCancel=new JButton("Cancel");
		btnCancel.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				close(JOptionPane.CANCEL_OPTION);
			}
		});
		buttonsPane.add(btnCancel);
		
		JButton btnCon=new JButton("Continue");
		btnCon.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				close(JOptionPane.OK_OPTION);
			}
		});
		buttonsPane.add(btnCon);
 

lotu

Mitglied
Vielen Dank nochmal, das ist wirklich unglaublich nett, wieviel Zeit Du Dir dafür genommen hast, Du hast mir wirklich weiter geholfen :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFX Wie programmiere ich hier einen "Weiter" Button? AWT, Swing, JavaFX & SWT 11
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
U Gibt es eine Möglichkeit statt concatenate einen anderen Befehl zu nutzen? AWT, Swing, JavaFX & SWT 9
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Lukas2904 Wie speicher ich eine Einstellung? AWT, Swing, JavaFX & SWT 1
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Zwei JTables auf eine A4-Seite mit einstellbaren Rändern AWT, Swing, JavaFX & SWT 9
Monokuma 2D-Grafik Imageimport durch eine gezeichnete Form ersetzen AWT, Swing, JavaFX & SWT 16
M Eine Datei auf den Apache Server hochladen - über das Menü im JavaProgramm AWT, Swing, JavaFX & SWT 7
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
B Swing Sudoku: Laden / Speichern von Zahlen aus/in mehrere JTextFields aus/in eine(r) Textdatei AWT, Swing, JavaFX & SWT 9
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
F Variablen an eine Form binden? AWT, Swing, JavaFX & SWT 2
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
W JavaFX Warum kriege ich eine Exception? AWT, Swing, JavaFX & SWT 23
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
Informatiknoob AWT Zahlenraten (eine Zahl zwischen 1 und 10) AWT, Swing, JavaFX & SWT 1
A eine Fehler AWT, Swing, JavaFX & SWT 9
TheJavaKid Auf eine Zeichnung im Canvas reagieren AWT, Swing, JavaFX & SWT 13
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
J jButton soll nach klicken eine Variable um 1 erhöhen AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
J Swing JavaProgramm für Verschlüssen für eine Datei AWT, Swing, JavaFX & SWT 19
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J JavaFX Die Webview stellt eine Webseite nicht dar AWT, Swing, JavaFX & SWT 0
M JavaFX Ein Labeltext eine zeitlang anzeigen dann weiter machen AWT, Swing, JavaFX & SWT 3
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
Joker4632 JFrame in eine Runnable auslagern? AWT, Swing, JavaFX & SWT 4
A JScrollPane soll JPanel mit JButtons enthalten und eine Scollbar anzeigen AWT, Swing, JavaFX & SWT 1
B Wie erstelle ich eine JavaFX Anwendung von diesem Code? AWT, Swing, JavaFX & SWT 3
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Eine paint-Methode, 2 Welten? AWT, Swing, JavaFX & SWT 3
Thallius Swing JDatePicker oder Sucht jemand eine Aufgabe? AWT, Swing, JavaFX & SWT 0
K Wie kann ich eine Variable zwischen Tab Klassen weitergeben ? AWT, Swing, JavaFX & SWT 7
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
R Swing Durch JComboBox-Item eine TextArea aktualisieren AWT, Swing, JavaFX & SWT 2
M Wie binde ich eine JavaFX ProgressBar an eine Datei Übertragung? AWT, Swing, JavaFX & SWT 2
D Objekte einer Oberfläche in eine Datei/Ordner speichern AWT, Swing, JavaFX & SWT 9
A Mit dem Scene Builder eine Collage erstellen (Bilder beziehen aus Flickr) AWT, Swing, JavaFX & SWT 1
A JFace Wizard: Ist es möglich eine Page zu löschen? AWT, Swing, JavaFX & SWT 2
M Combo Box auswahl in eine Datenbank speichern AWT, Swing, JavaFX & SWT 1
M Swing JTextField getText Mehtode übergeben in eine Klasse zu einer Rechnung AWT, Swing, JavaFX & SWT 1
D AWT Das ganze GUI in eine Klasse? AWT, Swing, JavaFX & SWT 1
J JavaFX eine Art Tabelle, jedoch mit mehreren Zeilen AWT, Swing, JavaFX & SWT 2
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
U LookAndFeel für eine Komponente AWT, Swing, JavaFX & SWT 2
E Mit Netbeans von einer Form auf eine Komponente einer anderen Form zugreifen AWT, Swing, JavaFX & SWT 2
G Zeichnen auf eine schwergewichtige Komponente? AWT, Swing, JavaFX & SWT 0
S Swing Update eine JTabelle nach einer Drag&Drop Operation AWT, Swing, JavaFX & SWT 0
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
M Wie kann ich eine an Apple Automator angelehnte GUI erstellen? AWT, Swing, JavaFX & SWT 1
A JavaFX Eine Task mit einer ProgressBar verbinden AWT, Swing, JavaFX & SWT 0
S JavaFX Canvas - nur eine Figur auf der Zeichenfläche färben? AWT, Swing, JavaFX & SWT 1
S Swing Mit einem Link eine Methode aufrufen AWT, Swing, JavaFX & SWT 2
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
G 2D-Slider bzw. eine graphische Auswahlkomponente die sich so verhält AWT, Swing, JavaFX & SWT 6
H Lust auf eine Open-Source Lösung für universelle Java Client-Technologie? AWT, Swing, JavaFX & SWT 11
T Aus JAVA.Jar GUI eine Flash-Datei machen AWT, Swing, JavaFX & SWT 3
S 5 Playlisten eine Skip() AWT, Swing, JavaFX & SWT 4
M SWT Browser nur eine Seite erlauben AWT, Swing, JavaFX & SWT 3
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
K GUI Elemente über eine separate Textdatei beschriften? AWT, Swing, JavaFX & SWT 4
G noch eine Frage zum EventDispachThread AWT, Swing, JavaFX & SWT 4
I Anhand ButtonGroup eine Auswahl treffen AWT, Swing, JavaFX & SWT 2
B Nach dem Öffnen des Dialogs eine Aktion ausführen. AWT, Swing, JavaFX & SWT 6
W Funktion aus einer Java Datei in eine andere einbauen AWT, Swing, JavaFX & SWT 25
A Swing Text auf eine Seite an beliebigen Orten schreiben AWT, Swing, JavaFX & SWT 6
G Swing Value von einer JScrollBar auf eine andere übertragen AWT, Swing, JavaFX & SWT 2
Rudolf Swing Wie testet man am besten eine GUI? AWT, Swing, JavaFX & SWT 3
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
F GroupableTableHeader zeigt nur eine Zeile AWT, Swing, JavaFX & SWT 4
N Swing Optimale Höhe eine JTextPanes bei festgelegter Breite bestimmen AWT, Swing, JavaFX & SWT 23
R Swing Mit Swing eine throws Exception Methode öffnen AWT, Swing, JavaFX & SWT 3
M Eine Kugel nach rechts bewegen AWT, Swing, JavaFX & SWT 5
C Swing NullPointerException beim Hinzufügen von Checkboxes in eine ArrayList AWT, Swing, JavaFX & SWT 5
GUI-Programmer LayoutManager Kurze Layout Frage - eine komponente mittig? AWT, Swing, JavaFX & SWT 5
lumo SWT Zeichnen bescheunigen bzw eine allg. Frage AWT, Swing, JavaFX & SWT 8
M Auf einem Bild eine Markierung aufziehen AWT, Swing, JavaFX & SWT 3
R Eine Instanz von JPanel mehrfach hinzufügen AWT, Swing, JavaFX & SWT 2
B eine .jar erzeugen AWT, Swing, JavaFX & SWT 4
M In JField eine Kommazahl darstellen java.lang.NumberFormatException AWT, Swing, JavaFX & SWT 4
N Button on click eine andere Klasse aufrufen... AWT, Swing, JavaFX & SWT 2
M Eine nicht korrekte Darstellung bei repaint() warum? AWT, Swing, JavaFX & SWT 4
M Ein Tab eine JTabbedPane durch Button Druck öffen AWT, Swing, JavaFX & SWT 2
B Swing JButtons in eine Arraylist<JButton> einfügen AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben