Προς το περιεχόμενο

Εικονα JPG στην Java.


red7genius

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα.

Φτιαχνω μια εφαρμογη σε java οπου πρεπει να εισαγω μια εικονα και βαση 2 πεδιων width kai height και πατωντας το resize να γινεται resize στα νουμερα που εχεις δωσει. ακομα με 3 alignment buttons πρεπει η εικονα να στοιχιζεται αριστερα δεξια και στο κεντρο. Το προβλημα μου ειναι στο πως θα βαλω την εικονα μου στο aplication.ολα τα κουμπια ειναι χωρισμενα σε δυο πανελς πανω και κατω και η εμφανιση την εικονας θελω να γινεται σε ενα τριτο center πανελ.

Μπορει να βοηθησει κανεις? Το μονο που θελω εινια ο κωδικας για να βαλω την εικονα..

Δημοσ.

Απο οσα ξερω μαστορα στην Java υπάρχουν διαφοροι τροποι να το κανεις. Μπορεις να κανεις extend ενα component και να βαλεις ιστοριες μεσα.

 

Η πιο απλη λύση νομίζω ειναι να βαλεις ενα πανελίδιο jPanel και μετα να πεις..

jPanelidio.getGraphics().drawImg(Εικονα); καπως ετσι

Και την Εικονα θα τη φτιάξεις με αυτο

Toolkit.getDefaultToolkit().getImage(διαδρομή);

 

Τωρα μας λες και βλεπουμε

Δημοσ.

κάνε χρήση JLabel

 

>
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class ImageTest {

 public static void main(String[] args) {
   JPanel panel = new JPanel();
   ImageLabel label = new ImageLabel("images/bird.jpg");
   label.setLocation(29, 37);
   panel.add(label);

   JFrame frame = new JFrame();
   frame.getContentPane().add(panel);
   frame.pack();
   frame.setVisible(true);
 }
}

class ImageLabel extends JLabel {

 
 public ImageLabel(String imageName) {
 	ImageIcon icon=new ImageIcon(imageName);
   setIcon(icon);
   setIconTextGap(0);
   setBorder(null);
   setText(null);
   setSize(icon.getImage().getWidth(null), icon.getImage().getHeight(null));
 }

}

Δημοσ.

δοκιμασα την λυση του virxen75 στον κωδικα μου και δεν δουλευψε(δεν εμφανιστηκε η εικονα).

το δοκιμασα ξεχωριστα παλι δεν εμφανιζει τιποτα.

υγ. ναι την εικονα την εχω βαλει στον ιδιο φακελο με το αρχειο κλασης.

any ideas?

Δημοσ.

Σαν ceidas που εχει το ιδιο project θα σε συμβουλευα να ψαξεις στο google ή στα tutorials της sun.

 

a! Και όσο για τον κώδικα του φίλου virxen75 φαντάζομαι οτι έβαλες σωστά την διαδρομή της εικόνας.

 

ImageLabel label = new ImageLabel("This is Anfield.jpg");
αν είναι στον ίδιο φάκελο και ειναι jpeg

 

Και το resize που μας ζητείται να κάνουμε δεν νομίζω να γίνεται με label. Για δοκίμασε με BufferedImage και Graphics2D.

Δημοσ.
Σαν ceidas που εχει το ιδιο project θα σε συμβουλευα να ψαξεις στο google ή στα tutorials της sun.

 

Και το resize που μας ζητείται να κάνουμε δεν νομίζω να γίνεται με label. Για δοκίμασε με BufferedImage και Graphics2D.

 

Αν θες γινε λιγο πιο συγκεκριμενος γιατι δεν εχω βρει κατι που να με βοηθησει...

Δημοσ.

>
import javax.swing.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Dimension;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.image.BufferedImage;
import java.awt.Image;
import java.io.File;
import java.awt.Graphics2D;
import java.awt.*;
import javax.imageio.ImageIO;
import java.io.*;
import java.awt.event.*;
public class ImageApp extends JFrame{
private ImageLabel label;
private JTextField widthTXT,heightTXT;
private int startWidth,startHeight;
public ImageApp(){
	setTitle("Image Application.");
	setLayout(new BorderLayout());
JMenuBar menuBar=new JMenuBar();
JMenu optionsMNU=new JMenu("Options");
JMenuItem reset=new JMenuItem("Reset");
reset.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){
	label.reset();
	widthTXT.setText(""+startWidth);
    heightTXT.setText(""+startHeight);
}});
optionsMNU.add(reset);
menuBar.add(optionsMNU);
//====================================
JPanel aligns=new JPanel(new GridLayout(1,3,1,1));
JButton align_left=new JButton("Align Left");
JButton align_center=new JButton("Align Center");
JButton align_right=new JButton("Align Right");
aligns.add(align_left);
aligns.add(align_center);
aligns.add(align_right);
JPanel aligns1=new JPanel(new BorderLayout());
aligns1.add(aligns,BorderLayout.NORTH);
//===============
JPanel panel = new JPanel();
   label = new ImageLabel("bird.gif");
   panel.add(label);
//=====================================
JPanel resize=new JPanel(new GridLayout(3,2,1,1));
JLabel width=new JLabel("Width:");
JLabel height=new JLabel("Height:");
widthTXT=new JTextField(4);
heightTXT=new JTextField(4);
widthTXT.setText(""+label.getWidth());
heightTXT.setText(""+label.getHeight());
startWidth=label.getWidth();
startHeight=label.getHeight();
		
JButton resizeBTN=new JButton("Resize");
resizeBTN.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){
	try{
		int w=Integer.parseInt(widthTXT.getText());
		int h=Integer.parseInt(heightTXT.getText());
	label.resizeImage(w,h);
			}
catch(IOException ioex){
					System.out.println("file not found!");

}

}
});
resize.add(width);resize.add(widthTXT);
resize.add(height);resize.add(heightTXT);
resize.add(resizeBTN);
aligns1.add(aligns,BorderLayout.NORTH);
   //==========================================	
   

   JLabel label1=new JLabel();
   label1.setSize(200,200);
   aligns1.add(panel,BorderLayout.CENTER);
add(menuBar,BorderLayout.NORTH);
add(aligns1,BorderLayout.CENTER);
add(resize,BorderLayout.SOUTH);
setSize(500,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String []args){
	new ImageApp();
}

class ImageLabel extends JLabel {
private String imageName;
 
 public ImageLabel(String imageName) {
 	this.imageName=imageName;
 	ImageIcon icon=new ImageIcon(this.imageName);
   setIcon(icon);
   setIconTextGap(0);
   setBorder(null);
   setText(null);
   setSize(icon.getImage().getWidth(null), icon.getImage().getHeight(null));
  }
public void reset(){
	ImageIcon icon=new ImageIcon(this.imageName);
   setIcon(icon);
   setIconTextGap(0);
   setBorder(null);
   setText(null);
   setSize(icon.getImage().getWidth(null), icon.getImage().getHeight(null));
}
 public void resizeImage(int newW, int newH) throws IOException{
 	File picFile = new File(this.imageName);
   BufferedImage img = ImageIO.read(picFile);
 	setIcon(new ImageIcon(resizedImage(img,newW,newH)));
 }
   public  BufferedImage resizedImage(BufferedImage img, int newW, int newH) {  
        int w = img.getWidth();  
         int h = img.getHeight();  
         BufferedImage dimg = dimg = new BufferedImage(newW, newH, img.getType());  
         Graphics2D g = dimg.createGraphics();  
          g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);  
        g.drawImage(img, 0, 0, newW, newH, 0, 0, w, h, null);  
          g.dispose();  
          return dimg;  
     }  

}
}

 

στέλνω και την εικόνα bird.gif που χρησιμοποίησα

να είναι στον ίδιο κατάλογο με το ImageApp.java

για να δούμε θα δεις τον παπαγάλο τώρα?

post-134651-129063007213_thumb.gif

Δημοσ.

lol ετοιμη την ειχες? χαχαχαχα

 

Να σου πω.. εχω και κατι αλλα project που βαριεμαι να κανω, θα μου τα στειλεις με mail? :-D

Δημοσ.

virxen75 ευχαριστω για τον κωδικα, αλλα δεν ηταν αυτο που ηθελα.

Το μονο που θελω εινια ο κωδικας για να βαλω την εικονα..

Το θεμα ειναι να μαθω java.

Anyway ευχαριστω.

 

BTW το alignment νομιζω δεν δουλευει.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...