• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Seit Gutenbergs Zeiten haben sich nicht nur Bücher über die ganze Welt verbreitet, sondern Buchstaben und Wörter begleiten uns allumfassend. Selbst moderne Devices mit Sprachsteuerung und Super-KI kommen nicht ohne Buchstaben, Wörter oder Symbole aus. Nicht zuletzt darum ist das Thema das Monats Am Anfang war das Wort ---> Klick

Java Programm bleibt nur über den start aus dem Finder hängen, Konsole nicht

Loooki

Beauty of Kent
Registriert
15.09.09
Beiträge
2.169
Hey Apfeltalker,

ich habe da mindestens 2 Fragen die sicherlich miteinander zu tun haben.

1. Wenn ich mein Java Programm aus dem Finder ausführe das heißt einfach doppelt auf die ausführbare *.jar Datei komm ich an eine bestimmte Stelle an dem ich eine Drag geste ausführen möchte, beim Klick auf die Komponente die ich sozusagen draggen will (Alles selbst geschriebene Komponenten nichts vorgefretigtes) bleibt das Programm hängen.

Führe ich den Spaß allerdings auf Konsole aus mach exakt das gleiche bleibt das Programm dort nicht hängen.

Außerdem sei zu erwähnen: Wenn ich das Programm aus Eclipse heraus starte (egal ob debug oder nicht) passiert keiner dieser Fehler.

In beiden Fällen gibt es keine Eceptions, nur dass java, bei der Finder Variante, aufeinmal mit 100% auf einem Core herumwurschtelt.

Wie kann das sein und wie ist das zu vermeiden?!

2. Beim ausführen über die Konsole bekomme ich bei JOptionPanes ohne Icon das Mac Order Icon angezeigt wenn ich die jar per Doppelklick ausführe bekomme ich das Java Icon (Das was kommt wenn man keins bei einem jOptionPane angibt)

Wie kann das sein und wie kann man das vermeiden?!


Code zu 1.:

Code:
    @Override
    public void dragGestureRecognized(DragGestureEvent dge) {
        if (dge.getDragAction() == DnDConstants.ACTION_MOVE) {
            dge.startDrag(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR), getResizedComponentImage(), new Point(18, 18), this, null);
        }
    }

    private Image getResizedComponentImage() {
        BufferedImage img = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_4BYTE_ABGR_PRE);
        this.paint(img.getGraphics());
        Image bufImg = resizeImage(img);
        return removeWhiteFromImage(bufImg);
    }

    private Image removeWhiteFromImage(Image img) {
        ImageFilter filter = new RGBImageFilter() {
            // the color we are looking for... Alpha bits are set to opaque
            public int    markerRGB    = Color.WHITE.getRGB() | 0xFF000000;

            public final int filterRGB(int x, int y, int rgb) {
                if ((rgb | 0xFF000000) == markerRGB) {
                    // Mark the alpha bits as zero - transparent
                    return 0x00FFFFFF & rgb;
                } else {
                    // nothing to do
                    return rgb;
                }
            }
        };
        return Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(img.getSource(), filter));
    }


Code zu 2.

Code:
this.userName = (JOptionPane.showInputDialog(null, "Username eingeben du Vogel!")).trim();

EDIT: es handelt sich um:
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03-378-11M3515)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-378, mixed mode)
 
Zuletzt bearbeitet: