2016-07-06 5 views
1

Der Code lief gut, bis ich versuchte, ein JLabel neu zu positionieren und obwohl es keine Fehler in meinem Code zeigt, weigert es sich, es auszuführen und gibt mir der folgende Fehler ... Ich versuche, das Label in die obere linke Ecke des JFrame-Fensters zu verschieben, und die Methode, die ich dazu verwendet habe, sollte vollkommen in Ordnung sein. Zumindest nach meinem Wissen. [Anfänger Java Dev]Eclipse wird nicht meinen Code ausführen und der Editor zeigt überhaupt keine Code-Fehler

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: verticalAlignment 
at javax.swing.JLabel.checkVerticalKey(JLabel.java:627) 
at javax.swing.JLabel.setVerticalAlignment(JLabel.java:713) 
at io.Arimore.Launcher.createAndShowGUI(Launcher.java:27) 
at io.Arimore.Launcher.access$0(Launcher.java:13) 
at io.Arimore.Launcher$1.run(Launcher.java:46) 
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:312) 
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:745) 
at java.awt.EventQueue.access$300(EventQueue.java:103) 
at java.awt.EventQueue$3.run(EventQueue.java:706) 
at java.awt.EventQueue$3.run(EventQueue.java:704) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) 
at java.awt.EventQueue.dispatchEvent(EventQueue.java:715) 
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242) 
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161) 
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) 
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) 
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91) 

Code:

package io.Arimore; 
import java.awt.*; 
import javax.swing.*; 

/* FrameDemo.java requires no other files. */ 
public class Launcher { 

/** 
* Create the GUI and show it. For thread safety, 
* this method should be invoked from the 
* event-dispatching thread. 
*/ 
private static void createAndShowGUI() { 
    Toolkit tk = Toolkit.getDefaultToolkit(); 
    Dimension d = tk.getScreenSize(); //Gets the user screen size 
    int scrnHigh = d.height; //Pulls out the High 
    int scrnWide = d.width; //Pulls out the Wide 
    //Create and set up the window. 
    JFrame frame = new JFrame("Welcome to Arimore.io"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JLabel emptyLabel = new JLabel("Arimore.io - v0.01A"); 
    emptyLabel.setPreferredSize(new Dimension(175, 100)); 
    int quatrainsY = (d.height/2); 
    int elabelH = (0 - quatrainsY); 
    int elabelW = (0 - (d.width/2)); 
    emptyLabel.setVerticalAlignment(elabelH); 
    emptyLabel.setHorizontalAlignment(elabelW); 
    frame.getContentPane().add(emptyLabel); 

    //Display the window. 
    frame.pack(); 

    //setSize(scrnWide *9/10, scrnHigh *9/10);//sets screen to 0.9 size 
    frame.setSize(scrnWide, scrnHigh);//sets screen to FULL size 
    //setLocation(scrnWide *1/20, scrnHigh *1/20);//CENTER it for 9/10th size 
    frame.setLocation(0, 0);// 
    frame.setVisible(true); 
} 

public static void main(String[] args) { 
    //Schedule a job for the event-dispatching thread: 
    //creating and showing this application's GUI. 
    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      createAndShowGUI(); 
     } 
    }); 
} 
} 
+1

Sie übergeben einen negativen Wert an 'setVerticalAlignment'. Diese Methode (nach [Javadoc] (https://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html#setVerticalAlignment (int))) akzeptiert 3 'int' Konstanten, die in' definiert sind SwingConstants' ('TOP',' CENTER' ** oder ** 'BOTTOM'). –

+0

so für mich nach oben links zu bewegen was hätte ich zu tun –

+0

nvm tzimhoch deckte es –

Antwort

3

JLabel.setVerticalAlignment einen int nimmt, aber die int-Werte sollten JLabel.TOP, JLabel.MIDDLE oder JLabel.BOTTOM sein.

Auch JLabel.setHorizontalAlignment wird JLabel.LEFT, JLabel.CENTER und JLabel.RIGHT nehmen.

Alle anderen Werte verursachen eine Ausnahme für ungültige Argumente.

+0

OMG DANKE ES ARBEITET !! Ich werde die Antwort bald akzeptieren. im Moment wird es mich nicht lassen ... –

Verwandte Themen