2011-06-22 150 views
1

我想使用JButton的自定義子類製作棋盤式棋盤。我的問題是,我的棋子圖像有點太小。有沒有一種方法可以將圖像縮放到網格佈局中每個網格的大小?如果我調整Jframe的大小,網格也會改變大小。有沒有一種方法可以在調整整個框架的大小時動態調整圖像大小?java動態調整圖像大小以適應網格佈局中的網格

回答

3

您的這個

1 3選項)上的油漆調整自己使用的GIMP時,Photoshop等

2)創建一個圖標動態

Image i = icon.getImage(); 
if(i != null){ 
    int width = (int)(size * fraction); 
    int height =(int)(size*icon.getIconHeight()/icon.getIconWidth()*fraction); 
    miniature = new ImageIcon(i.getScaledInstance(width, height, Image.SCALE_SMOOTH)); 
} 

3)圖像你可以使用刻度的框架

private void scaledDrawing(Graphics g, float scale){ 
    Graphics2D g2 = (Graphics2D) g; 
    AffineTransform at = new AffineTransform(); 
    AffineTransform save = g2.getTransform(); 
    at.setToIdentity(); 
    at.scale(goa.getScale().x, goa.getScale().y); 
    g2.transform(at); 
    image.paintIcon(c, g2); 
    g2.setTransform(save); 
} 
+0

在你的選擇2.什麼是分數?這只是我指定的一個變量嗎?有沒有一種方法可以確定網格的初始大小,以便我可以至少在開始時應用方法2?感謝 – jhlu87

+0

對不起,它只是一個計算之前保持一個特定的比例。在你面板內/你可以隨時做getHeight()getWidth()來計算你想要的圖像的大小;) –

+0

對不起,也許我只是愚蠢。我正在使用gridlayout(3,3),我不知道如何獲取特定網格的大小。我想也許我可以得到面板的大小和分割工作,但在我的JPanel上調用getHeight()返回0,這對我沒有意義。 – jhlu87

2

您可以對圖像應用一些轉換,但它可能看起來有點難看。如果圖像足夠小,也許您可​​以強制使用最小尺寸的按鈕,以便在框架尺寸非常小時滾動條會出現。另一種選擇可能是在兩個或三個不同尺寸的圖像集合中進行縮放,並將它們換成不同的尺寸。

相關問題