Napisałem kawałek interfejsu. Niestety nie mogę sobie poradzić, z narysowaniem rysunku, po wyborze odpowiedniego pliku.
private void wybor(java.awt.event.ActionEvent evt) {
try {
wybor_pliku = new JFileChooser("C:/");
wybor_pliku.showOpenDialog(null);
wybrany_plik = wybor_pliku.getSelectedFile();
Toolkit toolkit = Toolkit.getDefaultToolkit();
obraz = toolkit.getImage(wybrany_plik.getPath());
System.out.println("Wybrano plik: " + wybrany_plik.getName());
System.out.println("Sciezka: " + wybrany_plik.getPath());
int szerokosc = obraz.getWidth(null);
int wysokosc = obraz.getHeight(null);
System.out.println("Wysokość " + wysokosc);
System.out.println("Szerokość " + szerokosc);
}
catch(NullPointerException exp) {
}
}
Po prostu w tym momencie zarowno wysokosc jak szerokosc daja wynik -1 wiec cos jest nie tak, no i nie mam pojecia jak narysowac :(
A oto caly program:
import javax.swing.*;
import java.io.*;
import java.awt.*;
public class Propagacja extends javax.swing.JFrame {
public Propagacja() {
initComponents();
}
private void initComponents() {
glownyJPanel = new JPanel();
gornyJPanel = new JPanel();
wczytanieJPanel = new JPanel();
wynikJPanel = new JPanel();
roznicaJPanel = new JPanel();
dolnyJPanel = new JPanel();
wyborJButton = new JButton();
startJButton = new JButton();
roznicaJButton = new JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Propagacja wsteczna");
setResizable(false);
glownyJPanel.setLayout(new java.awt.BorderLayout());
glownyJPanel.setBackground(new java.awt.Color(0, 204, 204));
glownyJPanel.setBorder(new javax.swing.border.MatteBorder(null));
glownyJPanel.setMaximumSize(new java.awt.Dimension(1000, 1000));
glownyJPanel.setPreferredSize(new java.awt.Dimension(1200, 510));
gornyJPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT, 3, 1));
gornyJPanel.setBackground(new java.awt.Color(226, 250, 250));
gornyJPanel.setPreferredSize(new java.awt.Dimension(1200, 410));
wczytanieJPanel.setBackground(new java.awt.Color(255, 255, 255));
wczytanieJPanel.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(153, 0, 51), 1, true));
wczytanieJPanel.setPreferredSize(new java.awt.Dimension(396, 400));
org.jdesktop.layout.GroupLayout wczytanieJPanelLayout = new org.jdesktop.layout.GroupLayout(wczytanieJPanel);
wczytanieJPanel.setLayout(wczytanieJPanelLayout);
wczytanieJPanelLayout.setHorizontalGroup(
wczytanieJPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 394, Short.MAX_VALUE)
);
wczytanieJPanelLayout.setVerticalGroup(
wczytanieJPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 398, Short.MAX_VALUE)
);
gornyJPanel.add(wczytanieJPanel);
wynikJPanel.setBackground(new java.awt.Color(255, 255, 255));
wynikJPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 102)));
wynikJPanel.setPreferredSize(new java.awt.Dimension(396, 400));
org.jdesktop.layout.GroupLayout wynikJPanelLayout = new org.jdesktop.layout.GroupLayout(wynikJPanel);
wynikJPanel.setLayout(wynikJPanelLayout);
wynikJPanelLayout.setHorizontalGroup(
wynikJPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 394, Short.MAX_VALUE)
);
wynikJPanelLayout.setVerticalGroup(
wynikJPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 398, Short.MAX_VALUE)
);
gornyJPanel.add(wynikJPanel);
roznicaJPanel.setBackground(new java.awt.Color(255, 255, 255));
roznicaJPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 204, 0)));
roznicaJPanel.setPreferredSize(new java.awt.Dimension(396, 400));
org.jdesktop.layout.GroupLayout roznicaJPanelLayout = new org.jdesktop.layout.GroupLayout(roznicaJPanel);
roznicaJPanel.setLayout(roznicaJPanelLayout);
roznicaJPanelLayout.setHorizontalGroup(
roznicaJPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 394, Short.MAX_VALUE)
);
roznicaJPanelLayout.setVerticalGroup(
roznicaJPanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
.add(0, 398, Short.MAX_VALUE)
);
gornyJPanel.add(roznicaJPanel);
glownyJPanel.add(gornyJPanel, java.awt.BorderLayout.NORTH);
dolnyJPanel.setBackground(new java.awt.Color(226, 250, 250));
dolnyJPanel.setPreferredSize(new java.awt.Dimension(1200, 100));
wyborJButton.setBackground(new java.awt.Color(0, 51, 153));
wyborJButton.setForeground(new java.awt.Color(255, 255, 255));
wyborJButton.setText("Wczytaj rysunek");
wyborJButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
wybor(evt);
}
});
dolnyJPanel.add(wyborJButton);
startJButton.setBackground(new java.awt.Color(0, 51, 153));
startJButton.setForeground(new java.awt.Color(255, 255, 255));
startJButton.setText("START");
dolnyJPanel.add(startJButton);
roznicaJButton.setBackground(new java.awt.Color(0, 51, 153));
roznicaJButton.setForeground(new java.awt.Color(255, 255, 255));
roznicaJButton.setText("R\u00f3\u017cnica");
dolnyJPanel.add(roznicaJButton);
glownyJPanel.add(dolnyJPanel, java.awt.BorderLayout.SOUTH);
getContentPane().add(glownyJPanel, java.awt.BorderLayout.CENTER);
pack();
}
private void wybor(java.awt.event.ActionEvent evt) {
try {
wybor_pliku = new JFileChooser("C:/");
wybor_pliku.showOpenDialog(null);
wybrany_plik = wybor_pliku.getSelectedFile();
Toolkit toolkit = Toolkit.getDefaultToolkit();
obraz = toolkit.getImage(wybrany_plik.getPath());
System.out.println("Wybrano plik: " + wybrany_plik.getName());
System.out.println("Sciezka: " + wybrany_plik.getPath());
int szerokosc = obraz.getWidth(null);
int wysokosc = obraz.getHeight(null);
System.out.println("Wysokość " + wysokosc);
System.out.println("Szerokość " + szerokosc);
}
catch(NullPointerException exp) {
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Propagacja().setVisible(true);
}
});
}
private JPanel dolnyJPanel;
private JPanel glownyJPanel;
private JPanel gornyJPanel;
private JButton roznicaJButton;
private JPanel roznicaJPanel;
private JButton startJButton;
private JPanel wczytanieJPanel;
private JButton wyborJButton;
private JPanel wynikJPanel;
private JFileChooser wybor_pliku;
private File wybrany_plik;
Image obraz = null;
}