Zum Inhalt springen

speedi

Mitglieder
  • Gesamte Inhalte

    813
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von speedi

  1. Schon. Welcher Supermarkt akzeptiert bitte Privatjets und Aktienpakete als Zahlungsmittel an der Kasse? Die Kassiererinnen wollen ja schon oft genug nichmal die 10 € Gedenkmünzen annehmen (kann ich jedem empfehlen! für 10 € ne offizielle 10 € Gedenkmünze erwerben und damit zahlen gehen => Einfach herrlich).
  2. So Unterbezehalt sind Fachinformatiker auch wieder nicht. Es gibt immerhin Jobs wo man wesentlich weniger verdient und noch mehr leisten muss. z.B. als CEO bei Apple bekommt man grade mal 1$ Jahresgehalt!! Ich denke ein Problem ist das sich der Bereich ziemlich breit fächert aber die Personalheinis nicht in dem Unmfang unterscheiden wie es vielleicht nötig wäre. Jedes Script-Kiddy macht heute seine Fachinformatikerausbildung und jeder streber schaffts auch. Das auswendiglernen von APIs macht aber genausowenig einen guten Programmierer aus, wie die Fähigkeit simple Batch-Files (oder Shell-Script) zu erstellen. Von demher variieren die Aufgaben sehr stark. Jemand der einfach nur anhand von Designvorlagen Websites runtertippt kann einfach nicht so viel bekommen. Der jenige der sich die Website jedoch plant bekommt auch nicht viel mehr. Denn er hat ja das gleiche gelernt wie sein Kollege, ders einfach runtertippt. Ich bin mit der Gehaltsentwicklung in unserem Beruf auch nicht wirklich glücklich, aber ich bin zuversichtlich, dass sich das irgendwann wieder bessert. Denn wenn ich mir anschaue aus wie vielen aus meiner Berufsschulklasse (nur FiAEs) gute Programmierer geworden sind oder das Potential vorhanden ist, das der Groschen noch fällt, bin ich mir sicher, dass irgendwann die Nachfrage wieder steigt und die Firmen stärker zwischen Fachinformatiker und Fachinformatiker unterschieden.
  3. In Java stammen alle Klassen von Objekt ab. Du kannst also der Methode ein Object übergen (seit ?Java 1.6? kannst du da auch einen int direkt übergeben ohne den Umweg mit new Integer(deinInt)). Falls du Datentypen beim Speichern in die Datenbank unterschiedlich behandeln musst kannst du mit if(object instanceof String) abfragen ob dir beispielsweise ein String übergeben wurde.
  4. Hi, habe heute nach langer Zeit mal wieder Ubuntu installiert (8.04 nachdem 8.10 nach dem starten von der Installations-CD kein Bild gebracht hat). Mittlerweile läuft alles ganz passabel. Nur einwas ist einfach unannehmbar. Meine Grafikkarte macht scheinbar bissl mehr als nötig. Von demher dreht der Lüfter recht oft auf Maximum. Gibt es irgendeine Variante die Grafikleistung so zu drosseln, dass die Karte einfach (fast) nichts macht? Hab schon im Catalys-Controlcenter und Compiz geschaut. Leider ohne Erfolg. gruß Daniel
  5. Damit gehts: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; public class RunAScript { public static void main(String[] args) { try { final Process p = Runtime.getRuntime().exec("bash example.sh"); BufferedReader in = new BufferedReader(new InputStreamReader(p .getInputStream())); String s; while ((s = in.readLine()) != null) { System.out.println(s); if(s.equals("im Vorraus.")){//Wenn letzte Zeile vor der Abfrage erreicht... PrintWriter out = new PrintWriter(new OutputStreamWriter(p .getOutputStream())); out.println("ja"); out.flush(); } } } catch (IOException e) { e.printStackTrace(); } } } Mit ProcessBuilder gehts so ähnlich: LinkedList<String> liste = new LinkedList<String>(); liste.add("bash"); liste.add("example.sh"); ProcessBuilder builder = new ProcessBuilder(liste); final Process p = builder.start();
  6. Eventuell wärs auch echt schön wenn du eine Möglich konkrete Beschreibung der Fehlermeldung posten könntest. Wenn du sehr faul bist tuts auch ein Foto deines Bildschirms. Kommt der Fehler in Form eines Bluescreens (genauer Text)? Oder fängt er gar nicht erst an Windows zu laden?
  7. speedi

    Objekt an TimerTask

    Mal abgesehen davon, dass dein Quellcode wohl einer der unerotischsten ist die ich je gesehen haben (wieso machst du ein Applet direkt zu einem ActionListener? Und TimerTaskClass ist kein aussagekräftiger Name für eine Ableitung von TimerTask). Hier ein nochmals ein kleines Beispiel: import javax.swing.*; import java.awt.*; import java.util.*; import java.applet.*; import java.util.Timer; public class Gehaltsrechner extends Applet{ JPanel hauptPanel; JPanel panelStundenLohn; JLabel lblStundenLohn; JTextField eingabeStundenLohn; JPanel panelStartZeit; JLabel lblStartZeit; JTextField eingabeStartZeit; JButton rechneVerdienst; JPanel panelVerdienst; JLabel lblVerdienst; JLabel ausgabeVerdienst; public void init() { setBackground(Color.BLUE); hauptPanel = new JPanel(); hauptPanel.setLayout(new GridLayout(3, 1)); hauptPanel.setBackground(Color.WHITE); setSize(500, 120); add(hauptPanel); panelStundenLohn = new JPanel(); panelStundenLohn.setBackground(Color.BLACK); hauptPanel.add(panelStundenLohn); lblStundenLohn = new JLabel("Stundenlohn:"); lblStundenLohn.setForeground(Color.WHITE); panelStundenLohn.add(lblStundenLohn); eingabeStundenLohn = new JTextField(5); panelStundenLohn.add(eingabeStundenLohn); panelStartZeit = new JPanel(); panelStartZeit.setBackground(Color.RED); hauptPanel.add(panelStartZeit); lblStartZeit = new JLabel("Arbeitsbeginn:"); panelStartZeit.add(lblStartZeit); eingabeStartZeit = new JTextField("06:23"); panelStartZeit.add(eingabeStartZeit); rechneVerdienst = new JButton("Berechnen"); panelStartZeit.add(rechneVerdienst); panelVerdienst = new JPanel(); panelVerdienst.setBackground(Color.YELLOW); hauptPanel.add(panelVerdienst); lblVerdienst = new JLabel("Heutiger Verdienst:"); panelVerdienst.add(lblVerdienst); ausgabeVerdienst = new JLabel(); ausgabeVerdienst.setPreferredSize(new Dimension(100,20)); panelVerdienst.add(ausgabeVerdienst); Timer timer = new Timer(); timer.schedule(new TimerTaskClass(ausgabeVerdienst), 5000,1000); } class TimerTaskClass extends TimerTask { JLabel ausgabeVerdienst; int n; String [] ausgabe = new String []{"Ich","kann","dir","nur","den","Weg","zeigen",",","gehen","musst","du","ihn","jedoch","selbst","!"}; TimerTaskClass(JLabel ausgabeVerdienst) { this.ausgabeVerdienst = ausgabeVerdienst; run(); } public void run() { if(n >= ausgabe.length){ n = 0; } ausgabeVerdienst.setText(ausgabe[n]); n = n + 1; } } } Ich weiß nicht was ich noch machen soll. Ich habe dir jetzt genug Beispiele geliefert. Wenn du die Grundlagen von Java annähernd beherrschst und dich ein wenig anstrengst ist das eigentlich keine große Sache. Man kann erkennen wie du das Label übergibst. Aber wo startest du den TimerTask? Bzw. der ActionListener von deinem Timer wird !nirgends! verwendet. Wenn du eine Klasse in einer Klasse hast, kann diese übrigens auf alle Klassenvariablen der Klasse in der sie steckt zugreifen. Also brauchst du dein Label eigentlich nichtmal übergeben. Im übrigen: wo ist bei deiner Rechnung die gesetzliche Mittagspause und die 15-Minuten-Pause für Mitarbeiter unter 18? Ich glaub ich geh gleich mal zum Chef und sag dass ich die Pausen auch als Arbeitszeit angerechnet haben will. Die Zeit gehört ja schließlich eher zum Arbeitstag als zur Freizeit.
  8. speedi

    Apache Lizenz 2.0

    Soweit ich weiß ist, ist die Lizensart einer Software welche unter Apache Linzens 2.0 stehende Software verwendet frei wählbar. Du kannst soweit ich weiß sogar in kommerzieller nicht offenliegender Software solche Programmteile verwenden. Im übrigen: Was hat das im Java-Forum zu suchen?
  9. out.flsuh() brauchst du deshalb weil dein Printwriter alles erstmal bufferd. Erst wenn du flushst schreibt er die Sachen wirklich raus. Optional kannst du aber auch beim Konstruktor des Printstreams per boolean einstellen das automatisch geflusht werden soll.
  10. Dein Script liegt aber schon im Hauptordner deines Java-Programms oder? Falls du dir nicht sicher bist: new File("nameDerScriptDatei").exists() (nicht den Pfad angeben sondern nur den Dateinamen) sollte mit true antworten. spontan würde mir sonst noch folgendes einfallen was du probieren könntest: mit 1. Konsole starten: "Runtime.getRuntime("bash");" 2. Ins verzeichnis des Scrips wechseln out.println("cd /verzeichnispfad"); out.flush();: 3. Script aufrufen out.println("example.sh"); out.flush();
  11. Ich kann heute Abend gern mal drüber schauen. Was passiert denn genau? Hast jetzt mal rausschreiben lassen was vom Process ausgegeben wird?
  12. Also was die Heiligenscheine angeht: Die entstehen bei LED-LCD-Displays bei denen ein Netz von LEDs für die Ausleuchtung sorgt. Jede LED beleuchtet einen bestimmten Bereich des Displays. Der Voteil liegt auf der Hand: man kann jetzt ganze Bereiche des Displays komplett schwarz schalten indem man die Hintergrundbeleuchtung abschaltet. Da die Bereiche die von einer LED ausgeleuchtet werden momentan noch recht groß sind kann es unter Umständen passieren dass ein Bereich beleuchtet wird obwohl er eigentlich schwarzen Nachthimmel anzeigt. Allerdings ein paar Pixel einen Stern darstellen sollen. Dann ist der Hintergrund an der stelle nicht mehr schwarz sondern Grau (wie das normalerweise bei jeden anderen LCD auch ist). Also wie ich das verstehe brauchst du dir darum keine Gedanken machen, wenn du einen LCD mit gleichmäßiger Hintergrundbeleuchtung kaufst (was wahrscheinlich eh die meisten und preiswerteren Geräte betrifft).
  13. "Fiepen" habe ich bislang noch nicht feststellen können. Höchstens ein mehr oder weniger starkes rauschen, welches von den oft minder qualitativen Boxen im Fernseher kommt. Normalerweise werden die Boxen im Fernseher über einen Schalter in der Klinkebuchse für die Kopfhörer deaktiviert sobald du da was ansteckst. Von demher sollte dann natürlich das rauschen weg sein. Heiligenscheine sind mir weder in Läden noch bei der eigenen Verwendung bislang aufgefallen. Nur ein nachschlieren, was aber beim fernsehen so gut wie nicht auffällt.
  14. Also hab grad nochmal geschaut: JoptionPane ist in dem Punkt scheinbar echt extrem steif. Bislang wars mir nicht möglich auf einfachem Wege den Button zu entfernen. Am besten ists wahrscheinlich echt einen eigenen Dialog zu erstellen.
  15. Hab mir mal den Quellcode der Klasse JOptionPane angeschaut. Die methode... showInputDialog(Component parentComponent, Object message, Object initialSelectionValue) ...die du verwendest ruft ihrerseits die methode... return (String)showInputDialog(parentComponent, message, UIManager.getString("OptionPane.inputDialogTitle", parentComponent), QUESTION_MESSAGE, null, null, initialSelectionValue); In der wird dann dein JOptionPane erstellt, angezeigt, der Rückgabewert abgefangen und dir zurückgegeben. (witzig: sun verwendet auch ab und zu deprecated-Methoden). Also so wie ich die Sache sehe hast du drei Möglichkeiten: 1. Du machst dir einen komplett eigenen Dialog. 2. Du nimmst den Code von showInputDialog um deinen eigenen Dialog zu erstellen und änderst die parameter, so das es den Button nicht gibt. 3. Du nimmst den Code von showInputDialog um deinen eigenen Dialog zu erstellen, lässt dir dann die geaddeden Components geben, suchst den Button und removst ihn. Code der Methode: public static Object showInputDialog(Component parentComponent, Object message, String title, int messageType, Icon icon, Object[] selectionValues, Object initialSelectionValue) throws HeadlessException { JOptionPane pane = new JOptionPane(message, messageType, OK_CANCEL_OPTION, icon, null, null); pane.setWantsInput(true); pane.setSelectionValues(selectionValues); pane.setInitialSelectionValue(initialSelectionValue); pane.setComponentOrientation(((parentComponent == null) ? getRootFrame() : parentComponent).getComponentOrientation()); int style = styleFromMessageType(messageType); JDialog dialog = pane.createDialog(parentComponent, title, style); pane.selectInitialValue(); dialog.show(); dialog.dispose(); Object value = pane.getInputValue(); if (value == UNINITIALIZED_VALUE) { return null; } return value; }
  16. die Prinzen - chronisch Pleite Einfach weils so gut passt.
  17. überfällig _ entfernt!
  18. Das kann ich dir leider nicht sagen, aber ich denke es sollte schon vollkommen ausreichen, wenn du einfach dein Script mit den entsprechenden Parametern aufrufst. Wenn du dir nicht sicher bist ob es so läuft wie es soll versuchs mal damit: try { final Process p = Runtime.getRuntime().exec("deinScript -undParameter"); new Thread(){ public void run() { try{ BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String s; while((s = in.readLine()) != null){ System.out.println(s); } in.close(); }catch(IOException e){ e.printStackTrace(); } } }.start(); } catch (IOException e) { e.printStackTrace(); } Das startet dir einen Prozess und danach einen Thread in dem der InputStream des Threads gelesen wird. Optimalerweise bekommst du nun auf deiner JAVA-Konsole genau das ausgegeben, was du bekommen würdest, wenn du dein Script direkt aufrufst. Nachdem der Thread gestartet wurde kannst dann mittels PrintWriter wie oben erklärt ganz normal Befehle an das Programm schicken. Du kannst aber auch im Thread sowas machen wie: if(s.equals("Echt löschen?(Y/N)"){ //das ist natürlich nur ein Beispiel. ICh weiß ja nicht welche Frage dein Script genau stellt. out.println("y"); //Dafür muss out natürlich erstmal als PrintWriter erstellt worden sein out.flush(); } Wie schon gesagt: Du musst halt schauen, dass dein Script die "y"-Eingabe genau dann erhält wann es sie echt erwartet und nicht gleich unmittelbar nach dem start des Script.
  19. try { Process p = Runtime.getRuntime().exec("cmd"); PrintWriter out = new PrintWriter(new OutputStreamWriter(p.getOutputStream())); out.println("ping localhost"); out.flush(); } catch (IOException e) { e.printStackTrace(); } (FÜR WINDOWS: Öffnet eine Kommandozeilenkonsole (nicht sichtbar) und führt danach einen in ihr einen Ping aus). Genau so gut könnte man anstatt "cmd" "telnet" ausführen und dann befehle eintippen. Du musst natürlich sicher stellen, dass du es auch zu dem Zeitpunkt rausschreibst, an dem dein Scipt auf die Eingabe wartet und nicht schon vorher. Indem du den InputStream liest kannst du übrigens sehen, was grade von deinem Script ausgegeben wird. Im übrigen: die Methode funktioniert wahrscheinlich nur wenn du mit dem ProcessBuilder dein Script direkt aufrufst. Bzw. wenn dein Programm direkt in der Konsole des Prozesses läuft und nicht in einer Konsole die vom Prozess zusätzlich geöffnet wurde.
  20. Es kann schonmal vorkommen dass ein Board einen Speicher einfach mal nicht mag. In der Liste sind ja auch einige Speicher mit 1PCS und 2 PCS aufgelistet. Ich bin mir zwar nach wie vor nicht sicher, aber ich glaube das soll heißen, dass die Speicher pro Kanal nur mit einem Modul funktionieren.
  21. speedi

    Objekt an TimerTask

    Ja und? Die Lösungen sind eigentlich ausreichen die icch dir geschrieben habe, aber dann eben doch nochmal ausführlicher: import javax.swing.JFrame; import javax.swing.JLabel; public class Test extends Thread{ private JLabel label; private int zeit = 0; private int delay = 1000; public Test(JLabel label) { this.label = label; } public void run() { while(!isInterrupted()){ try{ Thread.sleep(delay); }catch(InterruptedException e){} zeit++; label.setText(""+zeit); } } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(0,0,100,100); JLabel zeit = new JLabel(); frame.add(zeit); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); Thread t = new Test(zeit); t.start(); } } und mit TimerTask gehts auch wunderbar: import java.util.Timer; import java.util.TimerTask; import javax.swing.JFrame; import javax.swing.JLabel; public class Test extends TimerTask{ private int zeit = 0; private JLabel label; public Test(JLabel label) { this.label = label; } public void run() { zeit++; label.setText(""+zeit); } public static void main(String[] args) { JFrame frame = new JFrame(); frame.setBounds(0,0,100,100); JLabel zeit = new JLabel(); frame.add(zeit); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); Timer timer = new Timer(); timer.schedule(new Test(zeit), 1000, 1000); } } Ich kenne deine Software-Architektur nicht, aber wie du das Label in den TimerTask, Thread oder ActionListener bekommst sollte normal nicht all zu schwer sein. Wenn du z.B. sicher sein kannst, dass zur Laufzeit des Programms das Label nicht mehr als einmal vorhanden ist könntest du es in eine statische variable speichern und von überall abrufen: DeineGUI.getLabelInstance();
  22. Falls es für deine zwecke Funktioniert dann arbeite anstatt mit ProcessBuilder mit Runtime.getRuntime().exec(...). Die Methode liefert dir einen Process zurück welcher über einen InputStream und einen OutputStream verfügt. Den OutputStream kannst du dann in einen OutputStreamWriter packen und diesen in einen PrintWriter. Danach machst du noch printwriter.println("y"); und printwriter.flush(); und deine Shell bekommt ne eingabe. __________UPDATE___________ processBuilder.start(); liefert dir auch einen Process zurück. Von demher ists egal was du letztendlich verwendest um auf dem OutputStream das rauszuschreiben.
  23. speedi

    Objekt an TimerTask

    Wenn du einfach nur die run() von irgendwo rufst ist das ne ganz normale Methode die dein Programm abarbeitet. Du musst es von einem Thread aufrufen lassen. Timer stellt dir die dazu nötige Komfortmethode zur verfügung. import java.util.Timer; import java.util.TimerTask; public class Bla { public Bla() { TimerTask t = new MyTimer(); Timer timer = new Timer(); timer.schedule(t, 1000, 1000); //timertask, start nach 1000 ms, aufruf alle 1000 ms } public class MyTimer extends TimerTask{ int counter = 0; public void run() { counter++; System.out.println("Blubb "+counter); } } public static void main(String[] args) { new Bla(); } } Eine weitere Variante wäre ein normaler Thread: public class Bla { public Bla() { MyThread t = new MyThread(); t.start(); } public class MyThread extends Thread{ int counter = 0; int delay; public MyThread() { this(1000); } public MyThread(int delay) { this.delay = delay; } public void run() { while(!isInterrupted()){ try{ Thread.sleep(delay); }catch(InterruptedException e){} counter++; System.out.println("Blubb "+counter); } } } public static void main(String[] args) { new Bla(); } } Und die dritte geläufige Methode: Der Timer von javax.swing import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Timer; public class Bla { public Bla() { ActionListener listener = new ActionListener(){ int counter = 0; public void actionPerformed(ActionEvent e) { counter++; System.out.println("Blubb "+counter); } }; Timer t = new Timer(1000, listener); t.start(); } public static void main(String[] args) { new Bla(); } }
  24. Interessant wäre vielleicht auch obs nur auftritt wenn du die 2 Speicherkanäle symetrisch bestückst so das Dualchannel verwendet werden kann. Hier findest du eine Liste mit Speichermodulen welche vom Hersteller der Boards getestet wurden (nicht vorhanden muss also nicht heißen, dass er nicht läuft). Speicherkompatibilitätsliste Weiß jemand was mit 1PCS und 2 PCS in den Spalten "SingleChannel" und "DualChannel" gemeint ist? Bei den meisten Modulen ist nur ein Häckchen drin was ich jetzt als "läuft" ohne Probs interpretieren würde. Heißt 1PCS vielleicht "läuft nur mit einem Modul" und "2PCS" läuft nur mit zwei Molulen?
  25. speedi

    VGA-Scart Kabel an TV?

    Hast du an deinem ThinClient vielleicht einen S-Video-Ausgang (den gibts ja normalerweise an jeder billig GraKa)? Dann könntest du den über einen Adapter mit dem Fenseher verbinden (die meisten SCART-Anschlüsse verstehen mittlerweile dieses Signal. Aber nicht alle) oder falls vorhanden direkt in den S-Video-Anschluss am Fernseher.

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...