📄 Main.java .java dosyası

⬇️ İndir
import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URL; import java.nio.file.Path; import java.nio.file.Paths; import javax.imageio.ImageIO; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; public class Main { public static Color galeriBG; public Main() throws IOException { galeriBG = new Color (0, 0, 0); JFrame frame = new JFrame("Resim Galerisi Kayıt | Java Blackboard [127]"); JPanel anapanel = new JPanel(); anapanel.setLayout(null); anapanel.setBackground(galeriBG); anapanel.setPreferredSize(new Dimension(800,2500)); JScrollPane scrollPane = new JScrollPane(anapanel); scrollPane.getViewport().setBackground(galeriBG); // Siyah rengi kullanabilirsiniz scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setBounds(0, 0, 940, 650); JButton kaydet = new JButton("Kaydet"); kaydet.setBounds(10, 10, 100, 20); JButton resmiGuncelle = new JButton("Güncelle"); resmiGuncelle.setBounds(120, 10, 100, 20); resmiGuncelle.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { anapanel.removeAll(); try { anapanel.add(kaydet); anapanel.add(resmiGuncelle); anapanel.add(sekizliPanel()); anapanel.add(ucluPanel()); anapanel.add(dortluPanel()); } catch (IOException e) { e.printStackTrace(); System.err.println("Hata Mesaji!..."); } // Bileşenleri tekrar görünür hale getiriyoruz. Component[] components = anapanel.getComponents(); for (Component component : components) { component.setVisible(true); } anapanel.revalidate(); anapanel.repaint(); } }); kaydet.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { try { kaydetPanelResimleri(sekizliPanel()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { kaydetPanelResimleri(ucluPanel()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { kaydetPanelResimleri(dortluPanel()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Bildirim ver JOptionPane.showMessageDialog(null, "Resimler başarıyla kaydedildi."); } }); anapanel.add(kaydet); anapanel.add(resmiGuncelle); anapanel.add(sekizliPanel()); anapanel.add(ucluPanel()); anapanel.add(dortluPanel()); frame.add(scrollPane); frame.setSize(940,650); frame.setLayout(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static JLabel resimEkle(int w, int h) throws IOException { URL imageUrl = new URL("https://picsum.photos/" + w + "/" + h); JLabel label = new JLabel(new ImageIcon(imageUrl)); label.setOpaque(true); // Opaque'yi true olarak ayarlayarak arka plan rengini görünür yapın label.setBounds(0, 0, w, h); return label; } // Benzersiz dosya adı üretme işlevi private String BenzersizDosyaIsmi() { return "/resim_" + System.currentTimeMillis(); } public static JPanel sekizliPanel() throws IOException { JPanel anapanel = new JPanel(); anapanel.setBackground(galeriBG); anapanel.setLayout(null); anapanel.setBounds(20,40,880,1080); int x = 0; int y = 0; int f = 30; JPanel panel1 = new JPanel(); panel1.setLayout(null); panel1.setBounds(x, y, 420, 290); x = x + 420 + f; panel1.add(resimEkle(420,290)); JPanel panel2 = new JPanel(); panel2.setLayout(null); panel2.setBounds(x, y, 180, 290); x = x + 180 + f; panel2.add(resimEkle(180,290)); JPanel panel3 = new JPanel(); panel3.setLayout(null); panel3.setBounds(x, y, 220, 400); y = y + 400 + f; panel3.add(resimEkle(220,400)); JPanel panel4 = new JPanel(); panel4.setLayout(null); panel4.setBounds(x, y, 220, 250); x = 0; y = 290 + f; panel4.add(resimEkle(220,250)); JPanel panel5 = new JPanel(); panel5.setLayout(null); panel5.setBounds(x, y, 240, 360); x = x + 240 + f; panel5.add(resimEkle(240,360)); JPanel panel6 = new JPanel(); panel6.setLayout(null); panel6.setBounds(x, y, 360, 360); x = 0; y = y + 360 + f; panel6.add(resimEkle(360,360)); JPanel panel7 = new JPanel(); panel7.setLayout(null); panel7.setBounds(x, y, 630, 370); x = x + 630 + f; panel7.add(resimEkle(630,370)); JPanel panel8 = new JPanel(); panel8.setLayout(null); panel8.setBounds(x, y, 220, 370); panel8.add(resimEkle(220,370)); anapanel.add(panel1); anapanel.add(panel2); anapanel.add(panel3); anapanel.add(panel4); anapanel.add(panel5); anapanel.add(panel6); anapanel.add(panel7); anapanel.add(panel8); return anapanel; } public static JPanel ucluPanel() throws IOException { JPanel anapanel = new JPanel(); anapanel.setBackground(galeriBG); anapanel.setLayout(null); anapanel.setBounds(20,1150,880,233); int x = 0; int y = 0; int w = 273; int f = 30; JPanel panel1 = new JPanel(); panel1.setLayout(null); panel1.setBounds(x, y, w, w); x = x + w + f; panel1.add(resimEkle(273,273)); JPanel panel2 = new JPanel(); panel2.setLayout(null); panel2.setBounds(x, y, w, w); x = x + w + f; panel2.add(resimEkle(274,274)); JPanel panel3 = new JPanel(); panel3.setLayout(null); panel3.setBounds(x, y, w, w); panel3.add(resimEkle(275,275)); anapanel.add(panel1); anapanel.add(panel2); anapanel.add(panel3); return anapanel; } public static JPanel dortluPanel() throws IOException { JPanel anapanel = new JPanel(); anapanel.setBackground(galeriBG); anapanel.setLayout(null); anapanel.setBounds(20,1413,880,1060); int x = 0; int y = 0; int f = 30; JPanel panel1 = new JPanel(); panel1.setLayout(null); panel1.setBounds(x, y, 480, 530); x = x + 480 + f; panel1.setBackground(Color.blue); panel1.add(resimEkle(480,530)); JPanel panel2 = new JPanel(); panel2.setLayout(null); panel2.setBounds(x, y, 370, 200); y = y + 200 + f; panel2.setBackground(Color.blue); panel2.add(resimEkle(370,200)); JPanel panel3 = new JPanel(); panel3.setLayout(null); panel3.setBounds(x, y, 370, 300); x = 0; y = y + 300 + f; panel3.setBackground(Color.blue); panel3.add(resimEkle(370,300)); JPanel panel4 = new JPanel(); panel4.setLayout(null); panel4.setBounds(x, y, 880, 300); panel4.setBackground(Color.blue); panel4.add(resimEkle(880,300)); anapanel.add(panel1); anapanel.add(panel2); anapanel.add(panel3); anapanel.add(panel4); return anapanel; } private void kaydetPanelResimleri(JPanel panel) { Component[] components = panel.getComponents(); for (Component component : components) { if (component instanceof JPanel) { JPanel subPanel = (JPanel) component; Component[] subComponents = subPanel.getComponents(); for (Component subComponent : subComponents) { if (subComponent instanceof JLabel) { JLabel label = (JLabel) subComponent; ImageIcon icon = (ImageIcon) label.getIcon(); BufferedImage bufferedImage = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g2d = bufferedImage.createGraphics(); icon.paintIcon(null, g2d, 0, 0); g2d.dispose(); // Resmi dosyaya kaydet try { File output = new File(getDesktopPath() + BenzersizDosyaIsmi() + ".jpg"); ImageIO.write(bufferedImage, "jpg", output); } catch (IOException e) { e.printStackTrace(); } } } } } } public static String getDesktopPath() { Path desktopPath = Paths.get(System.getProperty("user.home"), "/Desktop"); String desktopPathString = desktopPath.toString(); return desktopPathString; } }