red7genius Δημοσ. 23 Μαΐου 2009 Δημοσ. 23 Μαΐου 2009 Καλησπερα. Φτιαχνω μια εφαρμογη σε java οπου πρεπει να εισαγω μια εικονα και βαση 2 πεδιων width kai height και πατωντας το resize να γινεται resize στα νουμερα που εχεις δωσει. ακομα με 3 alignment buttons πρεπει η εικονα να στοιχιζεται αριστερα δεξια και στο κεντρο. Το προβλημα μου ειναι στο πως θα βαλω την εικονα μου στο aplication.ολα τα κουμπια ειναι χωρισμενα σε δυο πανελς πανω και κατω και η εμφανιση την εικονας θελω να γινεται σε ενα τριτο center πανελ. Μπορει να βοηθησει κανεις? Το μονο που θελω εινια ο κωδικας για να βαλω την εικονα..
ΠάρηςΓ Δημοσ. 24 Μαΐου 2009 Δημοσ. 24 Μαΐου 2009 Απο οσα ξερω μαστορα στην Java υπάρχουν διαφοροι τροποι να το κανεις. Μπορεις να κανεις extend ενα component και να βαλεις ιστοριες μεσα. Η πιο απλη λύση νομίζω ειναι να βαλεις ενα πανελίδιο jPanel και μετα να πεις.. jPanelidio.getGraphics().drawImg(Εικονα); καπως ετσι Και την Εικονα θα τη φτιάξεις με αυτο Toolkit.getDefaultToolkit().getImage(διαδρομή); Τωρα μας λες και βλεπουμε
virxen75 Δημοσ. 24 Μαΐου 2009 Δημοσ. 24 Μαΐου 2009 κάνε χρήση 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)); } }
red7genius Δημοσ. 24 Μαΐου 2009 Μέλος Δημοσ. 24 Μαΐου 2009 δοκιμασα την λυση του virxen75 στον κωδικα μου και δεν δουλευψε(δεν εμφανιστηκε η εικονα). το δοκιμασα ξεχωριστα παλι δεν εμφανιζει τιποτα. υγ. ναι την εικονα την εχω βαλει στον ιδιο φακελο με το αρχειο κλασης. any ideas?
javavall Δημοσ. 24 Μαΐου 2009 Δημοσ. 24 Μαΐου 2009 Σαν ceidas που εχει το ιδιο project θα σε συμβουλευα να ψαξεις στο google ή στα tutorials της sun. a! Και όσο για τον κώδικα του φίλου virxen75 φαντάζομαι οτι έβαλες σωστά την διαδρομή της εικόνας. ImageLabel label = new ImageLabel("This is Anfield.jpg"); αν είναι στον ίδιο φάκελο και ειναι jpeg Και το resize που μας ζητείται να κάνουμε δεν νομίζω να γίνεται με label. Για δοκίμασε με BufferedImage και Graphics2D.
red7genius Δημοσ. 24 Μαΐου 2009 Μέλος Δημοσ. 24 Μαΐου 2009 Σαν ceidas που εχει το ιδιο project θα σε συμβουλευα να ψαξεις στο google ή στα tutorials της sun. Και το resize που μας ζητείται να κάνουμε δεν νομίζω να γίνεται με label. Για δοκίμασε με BufferedImage και Graphics2D. Αν θες γινε λιγο πιο συγκεκριμενος γιατι δεν εχω βρει κατι που να με βοηθησει...
kafrosF Δημοσ. 24 Μαΐου 2009 Δημοσ. 24 Μαΐου 2009 http://java.sun.com/j2se/1.4.2/docs/api/java/awt/LayoutManager.html ceid oleee!
virxen75 Δημοσ. 25 Μαΐου 2009 Δημοσ. 25 Μαΐου 2009 > 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 για να δούμε θα δεις τον παπαγάλο τώρα?
javavall Δημοσ. 25 Μαΐου 2009 Δημοσ. 25 Μαΐου 2009 lol ετοιμη την ειχες? χαχαχαχα Να σου πω.. εχω και κατι αλλα project που βαριεμαι να κανω, θα μου τα στειλεις με mail?
red7genius Δημοσ. 25 Μαΐου 2009 Μέλος Δημοσ. 25 Μαΐου 2009 virxen75 ευχαριστω για τον κωδικα, αλλα δεν ηταν αυτο που ηθελα. Το μονο που θελω εινια ο κωδικας για να βαλω την εικονα.. Το θεμα ειναι να μαθω java. Anyway ευχαριστω. BTW το alignment νομιζω δεν δουλευει.
mpregos Δημοσ. 25 Μαΐου 2009 Δημοσ. 25 Μαΐου 2009 για να δουλεψει και το allignment νομιζω οτι πρεπει να κάνεις το jlabel.setopaque(true)
javavall Δημοσ. 25 Μαΐου 2009 Δημοσ. 25 Μαΐου 2009 Αφου δεν έχει ActionListeners στο Align πως να δουλεψει?
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.