Announcement

Collapse
No announcement yet.

Grafik-Datei als Java-Applikation Hintergrund?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Grafik-Datei als Java-Applikation Hintergrund?

    Möchte einer App. einen Hintergrund zuweisen - unterstützt Java so etwas???<BR>
    ...<BR>
    Dem Splash Fenster will ich einen Hintergrund(*.gif - Datei) zuweisen, Problem der JPanel soll aber auch andere kommpotente aufnehmen(ProgressBar, Labels usw.)<BR>
    ...<BR>
    habe selber nichts gefunden, habe falsch recherchiert, <B>oder handelt es sich hier um eine Java Schwäche.</B><BR>

    wäre dankbar für einen Tipp.

  • #2
    versuchs mal mit einer layered pane. Da koennen beliebige Komponenten uebereinander (nebeneeinander in ContentPane) geschichtet werden. Wenn dann noch die ueberlargernden Komponenten transparent sind (setOpaque(false)) sind all Moeglichkeiten gegeben. Allerdings geht dann der Vorzug der LayoutManager verloren, da diese nicht ohne weiteres in den Layered Panes einsetzbar sind...

    Comment


    • #3
      Hallo Andreas,<p>
      ich habe auch ein Beispiel mit Transparenz wie Swen aber noch <br>
      eine weitere Möglichkeit: <p>
      1) Du kannst mit oder ohne Transparenz in den Komponenten arbeiten<br>
      und ein Hintergrund-Panel nutzen:
      <pre><code>
      JLabel label = new JLabel("Test");
      label.setOpaque(false); // Transparenz
      JPanel backgroundPanel = new BackPanel();
      backgroundPanel.add(label); // FlowLayout für backgroundPanel
      getContentPane().add(backgroundPanel, BorderLayout.CENTER);

      class BackPanel extends JPanel {
      ImageIcon back = new ImageIcon("back.gif");
      private int w = back.getIconWidth();
      private int h = back.getIconHeight();

      public void paintComponent(Graphics g) {
      Dimension size = getSize();
      for (int row=0; row < size.height; row += h)
      for (int col=0; col < size.width; col += w)
      back.paintIcon(this, col, row);
      }
      }
      </pre></code>
      <p>
      2) Du arbeitest z.B. mit GridBagLayout und nutzt die Z-Order der Komponenten, <br>
      d.h. das GIF-Bild (z.B. via JLabel) muss als LETZTE Komponente mit <br>
      add() zum Layout hinzugefügt werden und erscheint dann im Hintergrund.
      <p>
      Klau

      Comment


      • #4
        Hallo Leute,

        normalerweise nimmt man dazu

        java.awt.TexturePaint

        Thoma

        Comment


        • #5
          Hallo Thomas,<p>
          mit TexturePaint kann ich mir ab Jdk1.2 mit dem Java 2D API ein Background<br> Canvas oder Panel bauen, aber das löst noch nicht das Problem, wie ich diesen<br> Background einem JFrame oder einer JComponent zuweise...
          <p>
          Klau

          Comment


          • #6
            Hallo Klaus,

            das geht auch mit JPanel

            Thoma

            Comment

            Working...
            X