Zum Inhalt springen

ShamaN

Mitglieder
  • Gesamte Inhalte

    43
  • Benutzer seit

  • Letzter Besuch

Beiträge von ShamaN

  1. Hi,

    Also ich schreibe derzeit ein Java-Programm, hauptsächlich muss das gute Stück auf Mac os x laufen. Da ich aber keine Erfahrung mir Mac habe muss ich hier mal etwas nachfragen.

    Derjenige, für den das Programm ist sagte mir, dass es bei mac normal wäre wenn ein Programm sich nicht vollständig mit dem Klick auf den roten Punkt beendet. Um es vollständig zu beenden wäre "apfeltaste + q" bzw. der dazugehörige Menüeintrag zu benutzen.

    Ich will nun das Event, dass dadurch ausgelöst wird abfangen um z.B. noch zu speichern.

    Stimmt soweit alles was ich geschrieben hab bzw. weiss jemand sogar wie ich dieses Event abfange?

  2. Danke, die Konsole war sehr hilfreich ;)

    Ich hatte ungünstigerweise ein rucksack-s :D in einem Klassennamen verwendet ^^

    Jetzt möchte ich das ganze auch für Mac einrichten. Bei Mac lassen sich Programme aber nicht durch einen Klick auf das x (roter Punkt) beenden ( hab ich mir sagen lassen), sondern vielmehr durch die apfeltaste+q bzw. in dem dazugehörigen Menü. Wie kann ich also das jetzt abfangen um davor noch eine Abfrage ob gespeichert werden soll zu erstellen?

  3. hi,

    ich will, dass wenn ich auf das x- Zeichen meines Frames klicke, eine Abfrage kommt ob die Daten vorher gespeichert werden sollen oder nicht.

    Das funktionier in Eclipse auch wunderbar aber wenn ich jetzt das ganze in eine jar Datei packe und diese starte dann passiert gar nix auf den klick des x-Zeichens.

    Es funktioniert erst wenn ich das package nochmal im gleich verzeichnis habe wie die jar-Datei, obwohl das package selbst in der jar ist. Das ist aber nicht Sinn der Sache.

    Wo liegt das Problem?

  4. Ok also mehr oder weniger funktioniert das Ganze jetzt, Hab den MouseListener auf das JScrollPane getan und der Scrollbalken lässt sicht auch Scrollen wenn ich genügen Komponenten einfüge, allerdings werden die ganzen Komponenten erst dünner. Die sollten natürlich so groß bleiben wie sie sind. Kann man das einstellen?

    setMinimumSize

    setMaximumSize

    setSize

    sind total unbrauchbare methoden wenns um das einstellen der Größe von Komponenten geht....

  5. JPanel asdf = new JPanel();

    BorderLayout layout = new BorderLayout();

    asdf.setLayout(layout);

    asdf.add(p1, "Center");

    asdf.add(p3, "East");

    JScrollPane scroll = new JScrollPane(asdf);

    scroll.setVerticalScrollBarPolicy(scroll.VERTICAL_SCROLLBAR_ALWAYS);

    this.getContentPane().add(scroll);

    sieht auf den ersten Blick gut aus, der ScrollBalken ist da wo er sein soll aber man kann auch nicht scrollen wenn datensätze über den Desktop hinaus gehen und der MouseListener gibt den geist auf

    Also wie muss des gemacht werden?

    Hab mich bisher von den Methoden eher fern gehalten ^^

    Bekommt man mit drawOval eigtl auch iwie (richtig) runde kreise hin?

  6. Hallo,

    Ich benötige einen Scrollbalken für mein Frame, welcher automatisch erscheint, falls der Inhalt des Frames zu groß wird(während der Laufzeit). Die maximale Größe sollte einstellbar sein oder eben den Desktop-Einstellungen entsprechen. Horizontale Scrollbalken sind nicht nötig.

    Hier mal ein Bild meiner Oberfläche:

    imgBOX.de - Flirten - Chatten - an Freunde verschicken

    Mein JFrame hat das Layout BorderLayout, welches zwei GridLayouts enthält. Eins in Center, welches die ersten 5 Spalten enthält, das 2te die letzten beiden mit den Buttons.

    Das Bild zeigt die maximale Anzahl an Datensätzen(24), wenn ich einen weiteren anfüge dann verschwindet dieser bereits außerhalb des Bildschirms(1400x900).

    Mein JFrame hat einen MouseListener, welcher durch Anklicken der Kreise, Diese ausfüllt. Als ich das BorderLayout einem eigenen JPanel zugefügt habe, Dieses in ein JScrollPane gepackt und dem JFrame zugefügt habe, hat der MouseListener nicht mehr funktioniert.

    Übrigens ein weiteres Problem...

    Der Name des Programms, "DVS", wird nicht in der Mac-Eigenen Menü-leiste angezeigt.Stattdessen steht dort der package-name. Hab versucht das mit folgendem Code richtig einzustellen. Hat allerdings nicht funktioniert.

    
    super("DVS");
    
    
    	String lcOSName = System.getProperty("os.name").toLowerCase();
    
    	boolean IS_MAC = lcOSName.startsWith("mac os x");
    
    	if(IS_MAC == true)
    
    	{
    
    		System.setProperty("com.apple.mrj.application.apple.menu.about.name", "DVS");
    
    		System.setProperty("com.apple.macos.smallTabs", "true");
    
    		try {
    
    			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    
    		} catch (Exception e) {
    
    			e.printStackTrace();
    
    		}
    
    		SwingUtilities.updateComponentTreeUI(this);
    
    	}
    
    

  7. Soo, auf mein Windows läuft das Programm mit der jar wunderbar, aber auf einem Mac gibts Probleme. Es wirft beim Verbinden mit einer MySql Datenbank eine ClassNotFoundException aus mit dem Inhalt "com.mysql.jdbc.Driver". Wieso funktioniert das auf einem Mac nicht?

  8. ich lese ein JTextArea mit automatischem zeilenumbruch aus und speichere es in eine textdatei, dabei entstehen kleine eckige zeichen bzw. manchmal auch leerzeilen, die wohl einer enter-taste entsprechen. Das ganze ist dann beim zeilenweisen auslesen recht hinderlich, kann ich diese formatierungen beim schreiben entfernen?

    Also... erstellt wird das JTextArea:

    
    JTextArea t7 = new JTextArea();
    
    t7.setLineWrap(true);
    
    t7.setWrapStyleWord(true);
    
    JScrollPane temp1 = new JScrollPane(t7);
    
    
    ausgelesen mit getText()
    
    datensatz_details[1] = t7.getText();
    
    
    Dann wird es in eine mySql-Datenbank gespeichert:
    
    stmt.executeUpdate( "UPDATE "+tabelle+" SET Beschreibung= '"+datensatz_details[1]+"' WHERE ID = '"+Felder_ID.get(Buttonnummer)+"'");
    
    
    Jetzt möchte ich ein Backup der Tabelle erstellen:
    
    details[1] = rs.getString("Beschreibung");
    
    
    Jetzt schreibe ich das ganze in ein Array sicherung[][]
    
    sicherung[i][6] = details[1];
    
    
    und schreibe das ganze in eine Text-datei:
    
    BufferedWriter out = new BufferedWriter(new FileWriter(getName()+".txt"));
    
    
    mit dem Befehl
    
    out.write(serverdaten[i]);
    
    

    Vermutlich sind diese Zeichen auch schon in der Datenbank vorhanden.

    Mehr Code zu posten wäre zu umfangreich...

  9. ah, jetz hab ich´s

    Class-Path: . .\iText-2.1.5.jar .\iText-rtf-2.1.5.jar .\iText-rups-2.1.5.jar .\mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar

    wo ich gerade nen thema offen hab, ich hab noch nen völlig anderes problem ^^ ich lese ein JTextArea mit automatischem zeilenumbruch aus und speichere es in eine textdatei, dabei entstehen kleine eckige zeichen bzw. manchmal auch leerzeilen, die wohl einer enter-taste entsprechen. Das ganze ist dann beim zeilenweisen auslesen recht hinderlich, kann ich diese formatierungen beim schreiben entfernen?

  10. und wie? ^^

    Manifest-Version: 1.0

    Created-By: 1.6.0_12 (Sun Microsystems Inc.)

    Class-Path: . .iText-2.1.5.jar .iText-rtf-2.1.5.jar .iText-rups-2.1.5.jar .mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar

    Main-Class: asdf.main

    ...?

  11. ok, danke, das programm funktioniert nun, aber die eingebundenen JAR´s wie mysql-connector-java-5.1.7-bin.jar, iText-2.1.5.jar, iText-rtf-2.1.5.jar und iText-rups-2.1.5.jar tun jetzt nichmehr, wie verweis ich denn jetz auf die? die liegen im selben ordner wie meine jar.

  12. meien jar datei enthält den ordner bin, mit dem unterordner asdf, in der sind meine 14 klassen gelistet, inklusive main.class.

    Außerdem enthält sie noch META-INF mit der der Datei MANIFEST.MF, welche die folgendes enthält: "Manifest-Version: 1.0

    Created-By: 1.6.0_12 (Sun Microsystems Inc.)

    Main-Class: asdf.main"

  13. jetzt funktioniert der jar befehl, allerdings kommt beim starten:

    Exception in thread "main" java.lang.NoClassDefFoundError: asdf/main

    Caused by: java.lang.ClassNotFoundException: asdf.main

    at java.netURLClassLoad$1.run<Unknown Source>

    at java.security.AccessController.doPrivileged<Native Method>

    at java.net.URLClassLoader.findClass<Unknown Source>

    at java.lang.ClassLoader.loadClass<Unknown Source>

    at sun.mist.Launcher$AppClassLoader.loadClass<Unknown Source>

    at java.lang.ClassLoader.loadClass<Unknown Source>

    at. java.lang.ClassLoader.loadClassInternal<Unknown Source>

    mit dem befehl werden allerdings die ganzen eingebundenen jar dateien auch nicht mit in die neue datei einbezogen...

  14. mit rechtsklick auf das projekt->export

    kannst du mir des mit der konsole genauer erklären?

    ich hab jar cmf Manifest.txt run.jar bin\asdf im Verzeichnis des Projektes angegeben und es wird mir gesagt dass der befehl jar nicht gefunden werden konnte

  15. obwohl es sich hunderte seiten von google darüber finden lassen schaffe ich es mit deren hilfe nicht so eine verdammte datei zu erstellen...

    also wenn ich über export-> runable jar file eine solche datei erstellen möchte dann kommt der fehler:

    jar creation failed. see details for additional information.

    die details sind:

    "unable to open zip file

    unable to open zip file"

    wenn ich jetz über export-> jar file es versuche, zudem die manifest.txt einbinde:

    "Manifest-Version: 1.0

    Main-Class: asdf.main"

    asdf ist das package, main die klasse zum starten

    mit abschließendem zeilenumbruch bekomme ich beim starten einen fehler.

    ich rufe meine jar datei mit der folgenden verknüpfung auf:

    C:\WINDOWS\system32\java.exe -jar "C:\Dokumente und Einstellungen\asd\workspace\Datenbank-Vorgang\run.jar"

    der Fehler lautet:

    "unable to access jar file" und dann der pfad

    wenn ich die manifest.txt auf main.asdf statt asdf.main ändere, dann erscheint die meldung:

    "Failed to load Main-Class manifest attribute from" und dann der pfad

  16. naja also ich hab jetzt

    String lcOSName = System.getProperty("os.name").toLowerCase();
    
    		boolean IS_MAC = lcOSName.startsWith("mac os x");
    
    			if(IS_MAC == true)
    
    			{
    
    				System.setProperty("apple.laf.useScreenMenuBar", "true");
    
    				//System.setProperty("com.apple.mrj.application.apple.menu.about.name", "WikiTeX");
    
    				try {
    
    					UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    
    				} catch (Exception e) {
    
    					e.printStackTrace();
    
    				}
    
    				System.setProperty("com.apple.macos.smallTabs", "true");
    
    			}
    angefügt in der Hoffnung dass jetzt auch die MenüItems richtig angezeigt werden. Außerdem habe ich Informationen aus und in Textdateien gelesen etwa so:
    
    BufferedWriter out = new BufferedWriter(new FileWriter("speicher.txt"));
    
    
    Kommt da nicht native Code zum Einsatz? Funktioniert das dann auch unter Mac? Und die Funktion
    	public void centerWindow(Window window) {
    
    	    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    
    	    Dimension frameSize = window.getSize();
    
    	    if (frameSize.height > screenSize.height) {
    
    	      frameSize.height = screenSize.height;
    
    	    }
    
    	    if (frameSize.width > screenSize.width) {
    
    	      frameSize.width = screenSize.width;
    
    	    }
    
    	    window.setLocation((screenSize.width - frameSize.width) / 2,
    
    	                       (screenSize.height - frameSize.height) / 2);
    
    	}

    wirft auch keine Fehler aus?

    VMware hab ich nichts für Mac auf Windows gefunden

  17. Hi,

    Ich habe eine relativ großes Programm geschrieben, welches jetzt auch unter Mac laufen soll. Ich hab das bisher unter Windows geschrieben.

    Da ich leider keinen Mac zur verfügung habe würde ich gern wissen ob es eine art simulator für Mac gibt, den ich nutzen könnte ob mein Programm funktioniert.

    Weiß dazu jemand etwas?

    Außerdem habe ich gelesen, dass wenn man Swing benutzt ein paar Anpassungen vornehmen muss, welche wären das? Hab dazu bisher leider keine ordentliche Seite gefunden.

  18. sind garantiert noch fehler drin, die ich jetz nicht vermag zu suchen

    public class main 
    
    {
    
    	public static void main(String[] args) 
    
    	{	
    
    		int n = 2;
    
    		int felderanzahl = 10;
    
    		feld felder[] = new feld[felderanzahl];
    
    		for(int i = 0; i < felderanzahl; i++)
    
    		{
    
    			felder[i] = new feld();
    
    		}
    
    		for(int i= 0; i < felderanzahl; i++)
    
    		{
    
    			if(countNischen(felder[i]) == n)
    
    			{
    
    				//Korn ablegen 
    
    			}
    
    			else 
    
    			{
    
    				//nichts tun
    
    			}
    
    		}
    
    
    	}
    
    	public int countNischen(feld feld)
    
    	{
    
    		if(feld.getNische() == true)
    
    		{
    
    			return 1 + countNischen(feld+1); //offensichtlich fehlerhaft 
    
    		}
    
    		else
    
    		{
    
    			return 0;
    
    		}
    
    	}
    
    	private class feld
    
    	{
    
    		private boolean Nische;
    
    		feld()
    
    		{
    
    			Random r = new Random();
    
    			int zufallszahl = Math.abs(r.nextInt() % 2);
    
    			if(zufallszahl == 0)
    
    				setNische(false);
    
    			else
    
    				setNische(true);
    
    		}
    
    		public void setNische(boolean a)
    
    		{
    
    			this.Nische = a;
    
    		}
    
    		public boolean getNische()
    
    		{
    
    			return Nische;
    
    		}
    
    	}
    
    }[/code]

  19. Ich füge mal ein paar Kommentare in deinen Code ein

    
    void main()
    
    {
    
    
    /* da die funktion  laufeUndSammle() einen rückgabewert hat solltest du den auch auffangen z.B. int[] anzahl = laufUndSammle();
    
     anzahl2 ist jetz das gleiche wie das anzahl welches du mit return  zurückgibst, nicht aber das selbe*/
    
            laufeUndSammle();  
    
    /* gleiches gilt hier, jedoch fehlt anzahl als parameter */
    
            funktionZumSortieren();
    
    }
    
    
    int [] laufeUndSammle() 
    
    {
    
          int felder = 5;
    
          int counter = 0;
    
          int werte = 0;
    
    
    /* hier solltest du vllt darüber nachdenken das ganze etwas dynamischer  zu gestalten z.B. int[] anzahl = new int[felder]; for(int i = 0; i < felder; i ++) {anzahl[i] = 0;} 
    
    jetzt könntest du z.B. felder von der main ind laufUndSammle übergeben*/
    
         int[] anzahl = new int [5];
    
          anzahl[0] = 0;
    
          anzahl[1] = 0;
    
          anzahl[2] = 0;
    
          anzahl[3] = 0;
    
          anzahl[4] = 0;
    
    
          while(felder>0&&vornFrei())
    
         {
    
              vor();
    
              while(kornDa())
    
              {
    
                   nimm();
    
                   werte++;
    
              }
    
              anzahl[counter] = werte;
    
              werte = 0;
    
              counter++;
    
              felder--;
    
        }
    
        return anzahl;
    
    }
    
    
    int [] funktionZumSortieren(int[] anzahl)
    
    {
    
    bums code
    
    }
    
     // denk aber an das return in dieser funktion
    
    
    bei einer int-funktion kann man den wert mit der variable einfach über return übergeben und in eine weitere variable speichern.. bsp: int zahl = funktionDieWasBerechnet(); geht sowas auch mit einer array übergabe?
    klar, mit allen objekten links vom zuweisungsoperator(=) muss lediglich ein objekt vom gleichen typ des rückgabewertes der funktion rechts vom zuweisungsoperator stehen
    int[] array = laufeUndSammleEin();

    wie oben bereits erwähnt.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...