Java TableLayout Beispiel / Example

Posted: Dezember 13th, 2011 | Author: admin | Filed under: Programmieren | Tags: , , , , , | 1 Comment »

Oft benutzte ich in meinen Anwendungen das praktische TableLayout. Es ist standardmäßig kein Bestandteil von Java, ihr könnt euch jedoch die Bibliothek hier herunterladen: http://java.sun.com/products/jfc/tsc/articles/tablelayout/apps/TableLayout.jar

Mit dem TableLayout könnt ihr folgende Größen definieren:

  • Prozentuale (in Prozent 0.5 = 50%)
  • Absolute (Pixel 200 = 200 Pixel)
  • Relative (TableLayout.FILL = den restlichen Platz verwenden)

Also Beispiel hier mehrere Buttons:

  • Spalten: 40%, 30%, TableLayout.FILL
  • Reihen: 200 Pixel, TableLayout.FILL

image

Hier der Quellcode:

import info.clearthought.layout.TableLayout;

import java.awt.EventQueue;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class TableLayoutTutorial extends JFrame {

  private JPanel contentPane;

  /**
   * Launch the application.
   */
  public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
      public void run() {
        try {
          TableLayoutTutorial frame = new TableLayoutTutorial();
          frame.setVisible(true);
        catch (Exception e) {
          e.printStackTrace();
        }
      }
    });
  }

  /**
   * Create the frame.
   */
  public TableLayoutTutorial() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100100450300);
    contentPane = new JPanel();
    
    double[][] layout = new double[][]{
        // X-Achse
        {0.40.3, TableLayout.FILL},
        
        // Y-Achse
        {200, TableLayout.FILL}
    };

    TableLayout contentPaneLayout = new TableLayout(layout);
    contentPane.setLayout(contentPaneLayout);
    setContentPane(contentPane);
    
    // "0,0" X-Position, Y-Position
    contentPane.add(new JButton("40% / 200")"0,0");
    contentPane.add(new JButton("30% / 200")"1,0");
    contentPane.add(new JButton("REST / 200")"2,0");
    
    contentPane.add(new JButton("40% / REST")"0,1");
    contentPane.add(new JButton("30% / REST")"1,1");
    contentPane.add(new JButton("REST / REST")"2,1");
  }

}

Java JButton mit Hover-Effekt

Posted: November 17th, 2011 | Author: admin | Filed under: Programmieren | Tags: , , , , , , , | No Comments »

Öfters verwende ich in  meinen Programmen einen Button der sein Icon ändert sobald man mit der Maus über diesen fährt. Also ein JButton mit Hover-Effekt. Die folgende Klasse implementiert diese Funktionalität von Haus aus. Beim Konstruktoraufruf können zwei ImageIcons übergeben werden.

Hier die Klasse JButtonHoverable.java:

package de.roth.jsona.view.button;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;

public class JButtonHoverable extends JButton{

   private ImageIcon imageIconHovered;
   private ImageIcon imageIcon;
   private boolean hoverable;
   
   public JButtonHoverable(ImageIcon imageIcon, ImageIcon imageIconHovered, String text){
      super(imageIcon);
      this.hoverable = true;
      this.imageIconHovered = imageIconHovered;
      this.imageIcon = imageIcon;
      this.setText(text);
      this.addHoverMouseListener();   
   }
   
   public JButtonHoverable(ImageIcon imageIcon, ImageIcon imageIconHovered){
      super(imageIcon);
      this.hoverable = true;
      this.imageIconHovered = imageIconHovered;
      this.imageIcon = imageIcon;
      this.addHoverMouseListener();
   }

   public ImageIcon getImageIconHovered() {
      return imageIconHovered;
   }

   public ImageIcon getImageIcon() {
      return imageIcon;
   }
   
   public void setHoverable(boolean hoverable){
      this.hoverable = hoverable;
   }
   
   private void addHoverMouseListener(){
      this.      
      addMouseListener(new MouseAdapter(){
         public void mouseEntered(MouseEvent e) {
            if(hoverable){
               JButtonHoverable button = ((JButtonHoverable)e.getSource());
               button.setIcon(button.getImageIconHovered());               
            }
         }
         
         public void mouseExited(MouseEvent e) {
            JButtonHoverable button = ((JButtonHoverable)e.getSource());
            button.setIcon(button.getImageIcon());
         }
      });
   }
}

Und so wird die Klasse verwendet:

JButtonHoverable buttonHoverable = new JButtonHoverable(new ImageIcon(
      getClass().getClassLoader().getResource(
            "de/roth/icon/blau.png"))new ImageIcon(
      getClass().getClassLoader().getResource(
            "de/roth/icon/rot.png")));

Java List zufällig sortieren / mischen / shufflen

Posted: Oktober 25th, 2011 | Author: admin | Filed under: Programmieren | Tags: , , , , , , , , , , | No Comments »

Schon oft in meinem Programmierer-Dasein habe ich eine List oder eine ArrayList in Java zufällig mischen müssen. Das ganze geht ziemlich einfach. Die Klasse Collections bietet uns die Methode shuffle an. Folgendes Code-Beispiel zeigt wie:

import java.util.ArrayList;
import java.util.Collections;

public class ListZufaelligSortieren {
  
  public static void main(String[] args) {
    
    ArrayList<String> namensListe = new ArrayList<String>();
    
    String name1 = new String("Peter");
    String name2 = new String("Paul");
    String name3 = new String("Maria");
    String name4 = new String("Otto");
    
    namensListe.add(name1);
    namensListe.add(name2);
    namensListe.add(name3);
    namensListe.add(name4);
    
    // List durcheinander mischen
    Collections.shuffle(namensListe);
        
    for(String name : namensListe){
      System.out.print(name);
      System.out.print(" ");
    }
    // Ausgabe: Maria Paul Otto Peter
  }
}

PHP: Split String

Posted: Oktober 15th, 2011 | Author: admin | Filed under: Programmieren | Tags: , , | No Comments »

Wer in PHP die Methode “split” sucht findet eine veraltete, eine sogenannte “deprecated” – Methode. Diese sollte man nichtmehr verwenden, besser ist die Variante mittels der Methode explode hier:

$woerter = explode(" ", "Hallo was geht ab");

Webseiten / Blog Ladezeit optimieren

Posted: Oktober 12th, 2011 | Author: admin | Filed under: Internet, Programmieren, Tutorials | Tags: , , , , , , , , , , | 3 Comments »

In folgendem Artikel möchte ich euch einen Anreiz geben wie ihr bei eurem Blog oder bei eurer Webseite schnellere Ladezeiten erreicht. Angeregt dazu hat mich der Artikel “Speed me up!” aus der c’t 2011 / Heft 20.

Analyse

Zu allererst misst ihr am Besten eure die Ladezeit eure Webseite. Damit ihr einen Vergleichswert nach dem Optimieren habt. Dafür eignet sich das Tool pingdom hervorragend, damit könnt ihr sehen welche Komponenten wie lange laden. Als weiteres Tool kenne ich YSLOW aus dem Hause Yahoo, welches mich jedoch nicht so sehr überzeugt hat. YSLOW bietet einige Zusatzfeatures wie die Bewertung bestimmter Parameter mit Schulnoten von A (sehr gut) bis F(sehr schlecht).

imageimage

CSS-Datei vor JavaScript laden

Da JavaScript Code auf die Informationen von CSS angewiesen ist wird JavaScript erst ausgeführt wenn alle CSS-Dateien geladen sind.

Nur eine CSS-Datei und eine JavaScript-Datei

Jedes laden einer Datei bedeutet für den Browser eine neue Anfrage an den Server. Bis diese Anfrage gestellt ist und mit einer Datei beantwortet wird vergeht relativ viel Zeit im vergleich zum Herunterladen der Datei. Packt man also drei CSS-Dateien mit je 10KB zusammen zu einer 30KB Datei ist das im Vergleich viel schneller wie das dreimalige herunterladen von 10KB. Das gleiche gilt natürlich auch für JavaScript-Dateien.

Komprimieren von CSS-Dateien

Um CSS-Dateien zu komprimieren gibt es mehrere Dienste zur Auswahl. Ich verwende jedoch immer CSS-Compressor von minifycss.com. Die CSS-Datei meines Blog-Theme konnte immerhin von 9.126KB auf 6.834KB komprimiert werden. Das entspricht einer Komprimierungsrate von 25.1%. Bei der Komprimierung werden zum Beispiel Farbinformationen, unnötige Backslashes oder Sonstige Attribute gekürzt.

image

Komprimieren von JavaScript-Dateien

Um JS-Dateien zu komprimieren verwende ich jscompress. Komprimiert man zum Beispiel die JS-Datei des Plugins Lightbox, kommt man von 23.83KB auf stolze 10.590KB und einer Komprimierungsrate von stolzen 56%. Setzt man JavaScript-Frameworks wie jQuery oder ähnliches ein kann man das Framework als bereits komprimierte JS-Datei herunterladen.

image

Bilder zusammenfassen

CSS-Sprites werden benutzt um die Anzahl der HTTP-Anfragen an einen Server zu reduzieren um somit schnellere Seitenladezeiten zu erreichen. Hierbei werden alle Bilder zu einem einzigen Bild gepackt, und über CSS Positionsinformationen je nach anzuzeigendem Bild ausgerichtet. Auch hier gibt es eine Menge Anbieter. Da ich CSS-Sprites für meinen Blog nicht verwende kann ich leider keinen mir bekannten Dienst nennen, aber einfach mal nach css sprites generator googlen.

Sonstiges

Hier noch eine andere Methoden die ich kenne mich jedoch noch nicht wirklich damit beschäftigt habe:

WordPress-Plugins

  • WP Super Cache: Cached Bloginhalte, somit werden Datenbankzugriffe und Ausführung von PHP-Code reduziert.
  • WP Minify: Reduziert die Anzahl von CSS- und JS-Dateien
  • Use Google-Libaries: Ladet alle bekannten Bibliotheken wie zum Beispiel jQuery oder Prototype von Google-Servern, dies reduziert die eigene Serverlast.

Falls ihr noch mehr Informationen habt zu dem Thema, könnt ihr diese gerne hier posten. Ich hoffe ich konnte dem ein oder anderen weiterhelfen.


Pages: 1 2 3 4 5 6 7 8 9 10 11 Nächste Seite