Menüleiste + Dateidialog + Bild

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Menüleiste + Dateidialog + Bild

    Hi

    hab folgendes Problem!
    Ich weiß die Aufgaben stellen, ich weiß aber nicht wie ich das Programmieren soll:

    Entwerfen Sie eine Applikation auf Basis eines 400x400 Bildpunkten großen Frames mit folgendem Aussehen:

    Ihr Java-Programm soll eine Menüleiste mit 2 funktionsfähigen Menüpunkten besitzen. Bild laden und Beenden. Menüpunkt 'Bild laden' soll einen Filedialog öffnen und anschließend das gewählte Bild darstellen. Das Symol des Frames soll ebenso wie der Menüpunkt beenden die Applikation beenden.
    Lassen Sie den Programm-code ausdrucken und speichern Sie ihre Anwendung auf Diskette.


    Kann mir da wer helfen, oder irgendwie schreiben was ich da schreiben soll!
    wäre echt super und dringend!
  • Themenname: NETBEANS, Forum: C / C++ / D - Was hat das mit deinem Problem zu tun?

    Hier wird sich keiner finden, der dir das fertig codet. Also fang besser mal an und schilder uns dann deine Probleme.
    Wichtig zu wissen ist, welches GUI Framework du verwenden wirst? AWT? Swing?
    Ein paar Stichworte: MenuBar, FileDialog. Einfach mal in der Java API suchen.
  • also ich hab alles bis auf das bild einfügen!
    Wenn ich mein bild einfüge, bekomme ich nur Sonderzeichen.......
    Menüleisten habe ich!

    Ich versteh nur nicht was der damit mein, FileDialog soll das Bild öffnen!

    Beenden funktioniert bei mir!

    Das Symol des Frames soll ebenso wie der Menüpunkt beenden die Applikation beenden. >>????
    Symbol des Frames?
    Meint der damit das X rechts oben? oder wie
    Wenn ja, funktioniert auch schon!

    Ich habe theoretisch nur Probleme mit dem Bild.....
  • Hier mal mein Code vom Programm, ist ohne Bild einfügen, ich würde nur wissen, was ich schreiben muss und wohin ich das schreiben muss, damit mir ein Bild angezeigt wird, also vom Format .jpg

    Quellcode

    1. *
    2. * NewJFrame.java
    3. *
    4. * Created on 27. November 2007, 10:30
    5. */
    6. package javaapplication2;
    7. import javax.swing.*;
    8. import java.awt.*;
    9. import java.awt.event.*;
    10. import java.io.*;
    11. import java.awt.Image*;
    12. /**
    13. *
    14. * @author schueler
    15. */
    16. public class NewJFrame extends javax.swing.JFrame {
    17. FileDialog fd = new FileDialog(this, "Datei öffnen", FileDialog.LOAD);
    18. /** Creates new form NewJFrame */
    19. public NewJFrame() {
    20. initComponents();
    21. GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    22. String[] font = ge.getAvailableFontFamilyNames();
    23. for (int i=0; i<font.length; i++) {
    24. jComboBox1.addItem(font[i]);
    25. }
    26. jMenuItem1.addActionListener(new ActionListener()
    27. {
    28. public void actionPerformed(ActionEvent ae)
    29. {
    30. if (ae.getActionCommand().equals("Speichern"))
    31. {
    32. //fd.show();
    33. fd.setVisible(true);
    34. try
    35. {
    36. String dat = fd.getFile();
    37. String pfad = fd.getDirectory();
    38. String dateiname = pfad + "\\" + dat + ".txt";
    39. FileOutputStream out = new FileOutputStream(dateiname);
    40. byte[] bytes;
    41. String z = jTextPane1.getText();
    42. bytes = z.getBytes();
    43. for(int i=0; i<z.length();i++)
    44. {
    45. out.write(bytes[i]);
    46. }
    47. out.close();
    48. }
    49. catch (Exception e) { jTextPane1.setText("Bug T_T"); }
    50. }
    51. }
    52. }
    53. );
    54. jMenuItem2.addActionListener(new ActionListener()
    55. {
    56. public void actionPerformed(ActionEvent ae)
    57. {
    58. if (ae.getActionCommand().equals("Laden"))
    59. {
    60. //fd.show();
    61. fd.setVisible(true);
    62. try
    63. {
    64. String dat = fd.getFile();
    65. String pfad = fd.getDirectory();
    66. String dateiname = pfad + "\\" + dat;
    67. if (dateiname.toLowerCase().endsWith(".txt"))
    68. {
    69. FileReader fr = new FileReader(dateiname);
    70. BufferedReader br = new BufferedReader(fr);
    71. String z = br.readLine();
    72. while (z != null)
    73. {
    74. //jTextPane1.append(z + "\n");
    75. jTextPane1.setText(jTextPane1.getText()+z);
    76. z = br.readLine();
    77. }
    78. }
    79. }
    80. catch (Exception e) { jTextPane1.setText("Bug T_T"); }
    81. }
    82. }
    83. }
    84. );
    85. jMenuItem3.addActionListener(new ActionListener()
    86. {
    87. public void actionPerformed(ActionEvent ae)
    88. {
    89. System.exit(0);
    90. }
    91. }
    92. );
    93. jMenuItem4.addActionListener(new ActionListener()
    94. {
    95. public void actionPerformed(ActionEvent ae)
    96. {
    97. jTextPane1.copy();
    98. }
    99. }
    100. );
    101. jMenuItem5.addActionListener(new ActionListener()
    102. {
    103. public void actionPerformed(ActionEvent ae)
    104. {
    105. jTextPane1.paste();
    106. }
    107. }
    108. );
    109. jMenuItem6.addActionListener(new ActionListener()
    110. {
    111. public void actionPerformed(ActionEvent ae)
    112. {
    113. jTextPane1.cut();
    114. }
    115. }
    116. );
    117. jComboBox1.addActionListener(new ActionListener(){
    118. public void actionPerformed(ActionEvent ae){
    119. jTextPane1.setFont(new Font(String.valueOf(jComboBox1.getSelectedItem()), jTextPane1.getFont().getStyle(), jTextPane1.getFont().getSize()));
    120. }
    121. }
    122. );
    123. jComboBox2.addActionListener(new ActionListener(){
    124. public void actionPerformed(ActionEvent ae){
    125. jTextPane1.setFont(new Font(jTextPane1.getFont().getFamily(), jComboBox2.getSelectedIndex(), jTextPane1.getFont().getSize()));
    126. }
    127. }
    128. );
    129. jTextField1.addActionListener(new ActionListener(){
    130. public void actionPerformed(ActionEvent ae){
    131. jTextPane1.setFont(new Font(jTextPane1.getFont().getFamily(), jTextPane1.getFont().getStyle(), Integer.valueOf(jTextField1.getText())));
    132. jSlider1.setValue(Integer.valueOf(jTextField1.getText()));
    133. }
    134. }
    135. );
    136. }
    137. /** This method is called from within the constructor to
    138. * initialize the form.
    139. * WARNING: Do NOT modify this code. The content of this method is
    140. * always regenerated by the Form Editor.
    141. */
    142. // <editor-fold defaultstate="collapsed" desc=" Generated Code ">
    143. private void initComponents() {
    144. jComboBox1 = new javax.swing.JComboBox();
    145. jComboBox2 = new javax.swing.JComboBox();
    146. jTextField1 = new javax.swing.JTextField();
    147. jSlider1 = new javax.swing.JSlider();
    148. jScrollPane2 = new javax.swing.JScrollPane();
    149. jTextPane1 = new javax.swing.JTextPane();
    150. jMenuBar1 = new javax.swing.JMenuBar();
    151. jMenu1 = new javax.swing.JMenu();
    152. jMenuItem1 = new javax.swing.JMenuItem();
    153. jMenuItem2 = new javax.swing.JMenuItem();
    154. jMenuItem3 = new javax.swing.JMenuItem();
    155. jMenu2 = new javax.swing.JMenu();
    156. jMenuItem4 = new javax.swing.JMenuItem();
    157. jMenuItem5 = new javax.swing.JMenuItem();
    158. jMenuItem6 = new javax.swing.JMenuItem();
    159. setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    160. jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Normal", "Fett", "Kursiv", "Fett+Kursiv" }));
    161. jTextField1.setText("12");
    162. jSlider1.setMinimum(2);
    163. jSlider1.setOrientation(javax.swing.JSlider.VERTICAL);
    164. jSlider1.setValue(12);
    165. jSlider1.addChangeListener(new javax.swing.event.ChangeListener() {
    166. public void stateChanged(javax.swing.event.ChangeEvent evt) {
    167. jSlider1StateChanged(evt);
    168. }
    169. });
    170. jSlider1.addHierarchyListener(new java.awt.event.HierarchyListener() {
    171. public void hierarchyChanged(java.awt.event.HierarchyEvent evt) {
    172. jSlider1HierarchyChanged(evt);
    173. }
    174. });
    175. jScrollPane2.setViewportView(jTextPane1);
    176. jMenu1.setText("Datei");
    177. jMenuItem1.setText("Speichern");
    178. jMenu1.add(jMenuItem1);
    179. jMenuItem2.setText("Laden");
    180. jMenu1.add(jMenuItem2);
    181. jMenuItem3.setText("Beenden");
    182. jMenu1.add(jMenuItem3);
    183. jMenuBar1.add(jMenu1);
    184. jMenu2.setText("Bearbeiten");
    185. jMenuItem4.setText("Kopieren");
    186. jMenu2.add(jMenuItem4);
    187. jMenuItem5.setLabel("Einf\u00fcgen");
    188. jMenu2.add(jMenuItem5);
    189. jMenuItem6.setLabel("Ausschneiden");
    190. jMenu2.add(jMenuItem6);
    191. jMenuBar1.add(jMenu2);
    192. setJMenuBar(jMenuBar1);
    193. org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
    194. getContentPane().setLayout(layout);
    195. layout.setHorizontalGroup(
    196. layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    197. .add(layout.createSequentialGroup()
    198. .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    199. .add(layout.createSequentialGroup()
    200. .add(24, 24, 24)
    201. .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 146, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    202. .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    203. .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 97, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    204. .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    205. .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 51, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    206. .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
    207. .addContainerGap()
    208. .add(jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 373, Short.MAX_VALUE)
    209. .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED)
    210. .add(jSlider1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)))
    211. .addContainerGap())
    212. );
    213. layout.setVerticalGroup(
    214. layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
    215. .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
    216. .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
    217. .add(jComboBox2, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    218. .add(jComboBox1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
    219. .add(jTextField1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE))
    220. .add(4, 4, 4)
    221. .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING)
    222. .add(org.jdesktop.layout.GroupLayout.LEADING, jSlider1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE)
    223. .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane2, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 257, Short.MAX_VALUE))
    224. .addContainerGap())
    225. );
    226. pack();
    227. }// </editor-fold>
    228. private void jSlider1StateChanged(javax.swing.event.ChangeEvent evt) {
    229. jTextField1.setText(String.valueOf(jSlider1.getValue()));
    230. jTextPane1.setFont(new Font(jTextPane1.getFont().getFamily(), jTextPane1.getFont().getStyle(), Integer.valueOf(jTextField1.getText())));
    231. }
    232. private void jSlider1HierarchyChanged(java.awt.event.HierarchyEvent evt) {
    233. }
    234. /**
    235. * @param args the command line arguments
    236. */
    237. public static void main(String args[]) {
    238. java.awt.EventQueue.invokeLater(new Runnable() {
    239. public void run() {
    240. new NewJFrame().setVisible(true);
    241. }
    242. });
    243. }
    244. // Variables declaration - do not modify
    245. private javax.swing.JComboBox jComboBox1;
    246. private javax.swing.JComboBox jComboBox2;
    247. private javax.swing.JMenu jMenu1;
    248. private javax.swing.JMenu jMenu2;
    249. private javax.swing.JMenuBar jMenuBar1;
    250. private javax.swing.JMenuItem jMenuItem1;
    251. private javax.swing.JMenuItem jMenuItem2;
    252. private javax.swing.JMenuItem jMenuItem3;
    253. private javax.swing.JMenuItem jMenuItem4;
    254. private javax.swing.JMenuItem jMenuItem5;
    255. private javax.swing.JMenuItem jMenuItem6;
    256. private javax.swing.JScrollPane jScrollPane2;
    257. private javax.swing.JSlider jSlider1;
    258. private javax.swing.JTextField jTextField1;
    259. private javax.swing.JTextPane jTextPane1;
    260. // End of variables declaration
    261. }
    Alles anzeigen
  • Poste mal ein bisschen Code. Der FileDialog liefert dir ja erstmal nur den Dateinamen. Den erhältst du?
    Den wandelst du am besten in ein URL-Objekt um (kannst ihn aber auch als String lassen)

    und wie greifst du das Bild dann ab? ImageIcon?

    Quellcode

    1. java.net.URL imageURL = myDemo.class.getResource("images/myImage.gif");
    2. ...
    3. if (imageURL != null) {
    4. ImageIcon icon = new ImageIcon(imageURL);
    5. }

    java.sun.com/docs/books/tutori…wing/components/icon.html