2017-02-25 13 views
0

我試圖通過設置setComponentZOrder(此代碼),但它也沒有工作,請給我一些建議,我怎樣才能實現這一目標,以使圖像幻燈片,並放置在JFrame中我已經寫了一個代碼,顯示圖像幻燈片,現在我想把一個按鈕,我該怎麼做?

import java.awt.Image; 
import java.awt.*; 
import java.awt.event.ActionListener; 
import javafx.event.ActionEvent; 
import javax.swing.JFrame; 
import javax.swing.*; 

public class slidemain extends JFrame { 

    JLabel jl; 
    JButton b; 
    Timer tm; 
    int x = 0; 
    int w; 
    int h; 
    String[] list = { 
     "C:\\Users\\HARITI\\Desktop\\sat.jpg", 
     "C:\\Users\\HARITI\\Desktop\\mtab.jpg", 
     "C:\\Users\\HARITI\\Desktop\\abc.jpg" 
    }; 

    public slidemain() 
    { 
     super("java slide show"); 
     // w = super.getWidth(); 
     // h = super.getHeight(); 

     jl = new JLabel(); 
     b = new JButton(); 
     //b.setVisible(true); 
     super.setComponentZOrder(jl, 0); 
     super.setComponentZOrder(b, 1); 
     jl.setBounds(0, 100, 1350, 650); 
     setImageSize(2); 

     tm = new Timer(1500, new ActionListener(){ 
      @Override 
      public void actionPerformed(java.awt.event.ActionEvent e) { 
      setImageSize(x); 
      x += 1; 
      if (x >= list.length) 
      { 
       x = 0; 
      } 
     } 
     }); 
     add(jl); 
     tm.start(); 
     setLayout(null); 

     getContentPane().setBackground(Color.decode("#bdb67b")); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setVisible(true); 
    } 

    public void setImageSize(int i) { 

     ImageIcon icon = new ImageIcon(list[i]); 
     Image img = icon.getImage(); 
     Image newimg = img.getScaledInstance(jl.getWidth(), jl.getHeight(), Image.SCALE_SMOOTH); 
     ImageIcon newimc = new ImageIcon(newimg); 
     jl.setIcon(newimc); 
    } 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     // TODO code application logic here 
     new slidemain(); 
    } 
} 

回答

1

這個按鈕就可以了...

super.setComponentZOrder(jl, 0); 
super.setComponentZOrder(b, 1); 

如果兩個組件都沒有添加到容器中,它將不會產生任何影響。

這使我們對你的下一個問題,你從來沒有真正按鈕添加到任何

如果你這樣做時,它不會顯示出來,因爲你使用的是null佈局

避免使用null佈局,像素完美佈局是現代UI設計中的幻想。影響組件的個體大小的因素太多,其中沒有一個可以控制。 Swing旨在與佈局經理一起工作,放棄這些將導致無法結束的問題和問題,您將花費越來越多的時間來嘗試糾正。

也許看看Why is it frowned upon to use a null layout in SWING?瞭解更多詳情

相關問題