ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
894
894
EMPFEHLEN
-
Hallo,
ich hoffe hier kann mir jemand helfen bin echt am verzweifeln
Ich hab eine jscrollpane gemancht. Leider schaffe ich es nicht Bilder und Text da rein zu tun,
die Bilder lassen sich dann nicht mit scrollen und liegen über den Text
Bin echt ein Anfänger und hab das mit netbeans gemacht.
eine Scrollpane gemacht, dann Textarea darüber und an denn stellen wo Bilder sind hab ich ein lable gemacht.
Ich hoffe jemand kann mir sagen was ich falsch mache und wie ich es richtig machen.
Oder mir ein passendes Beispiel zeigen kann.
Danke
liebe Grüße
-
Hallo hitomie,
wenn du ein wenig Code posten könntest, fällt das Fehlerfinden vermutlich etwas leichter
Grüße
Carron
-
PHP-Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* anleitung2.java
*
* Created on 10.06.2010, 20:42:32
*/
package gui;
/**
*
* @author me
*/
public class anleitung2 extends javax.swing.JFrame {
/** Creates new form anleitung2 */
public anleitung2() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel2 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
jLabel2.setIcon(new javax.swing.ImageIcon("C:\\Users\\me\\Documents\\NetBeansProjects\\gui\\src\\gui\\form.jpg")); // NOI18N
getContentPane().add(jLabel2);
jLabel2.setBounds(100, 240, 290, 90);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jTextArea1.setText("Das ist ein Test zum Test\n1\n2\n2\n3\n3\n4\n5\n5\n6\n\n\n\n\n\n\n\nund hier gehts weiter ");
jScrollPane1.setViewportView(jTextArea1);
getContentPane().add(jScrollPane1);
jScrollPane1.setBounds(80, 100, 330, 270);
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/gui/anleitung.jpg"))); // NOI18N
getContentPane().add(jLabel1);
jLabel1.setBounds(-60, 0, 624, 457);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new anleitung2().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
// End of variables declaration
}
So das ist mein Java code wie gesagt, hab das mit netbeans gemacht , (das heißt nix selber geschrieben
). Hoffe du kannst mir helfen.
-
Hi hitomie,
da du vermutlich vorerst weiter mit Netbeans deine GUI zusammenklicken wirst, werde ich vermeiden dir modifizierten Code zu geben, mit dem der Netbeans-GUI-Builder nichts anfangen kann.
Also nur ein paar Hinweise:- für alle deine Komponenten wird getContentPane().add(...); aufgerufen. Wenn du möchtest, das deine Labels bzw. deine TextArea in der JScrollPane mitbewegt werden, müssen diese der JScrollPane untergeordnet werden (z.B. jScrollPane1.add(jTextArea1)) etc.)
- um eine dynamische GUI zu erhalten, lohnt es sich einen Blick in die gegebenen LayoutManager zu verwerfen (siehe z.B. hier), der GUI-Builder nutzt nämlich leider das NULL-Layout (getContentPane().setLayout(null)), bei dem pixelgenau die Position und Größe der einzelnen Komponenten festgelegt wird (unpraktisch wenn sich die Fenstergröße mal verändert, oder man einfach nur die GUI von Hand erweitert...)
- Grundsätzlich bin ich ein Verfechter von handgeschriebene GUIs, weil der ausufernde Code von GUI-Buildern für meine Begriffe zu umständlich ist. Aber das ist nur eine persönliche Vorliebe und um den Umgang mit GUI-Komponenten zu lernen, ist ein solche Editor manchmal durchaus hilfreich...
Gute Nacht und Grüße
Carron
-
Erstmal vielen vielen Dank für deine Antwort, aber gegen einen modifizierten Code hätte ich nix
könnt ich dann doch über eclipse oder so sehe oder?
Werd auf jedenfall mal versuchen das unterzuordnen...hatte das vorher schonmal versucht nur leider konnte man es dann gar nicht mehr sehen weil es darunter war....
ohman das macht mich alles fertig...
-
Hallo,
soweit ich das verstanden habe ist dein "anleitung.jpg" als Hintergrundbild gedacht. Dafür habe ich aus einem anderen Beitrag hier im Forum den Code übernommen konnte ihn aber nicht auf die Schnelle testen.
Der Rest hat meines Erachtens funktioniert. Leider konnte ich dem NULL-Layout nicht deinen genauen GUI-Aufbau entnehmen (deswegen mag ich es auch nicht :P )
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
package gui; import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.WindowConstants; public final class Anleitung extends JFrame { // Das Hintergrundbild final ImageIcon background; /** * Konstruktor legt das Fenster mit dem gegebenen Titel an. * * @param title * zu setzender Titeltext */ public Anleitung(final String title) { // Super-Konstruktor (JFrame) aufrufen super(title); // Schliessen des Fenster soll die Anwendung beenden setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // Hintergrundbild hinterlegen this.background = new ImageIcon(getClass().getResource( "/gui/anleitung.jpg")); // Inhaltsbereich mit Hintergrundbild initialisieren setContentPane(new JPanel(new GridBagLayout()) { @Override protected void paintComponent(final Graphics graphics) { // normales Zeichnen bestehen lassen super.paintComponent(graphics); // Hintergrundbild einsetzen (obere linke Ecke) graphics.drawImage(Anleitung.this.background.getImage(), 0, 0, this); } }); // Komponenten in der contentArea anlegen initComponents(); // Fenster auf bevorzugte Groesse setzen pack(); } /** * Legt die eigentlichen Komponenten im Inhaltsbereich an. */ private void initComponents() { // ganz oben links das Label mit der "form.jpg" einsetzen getContentPane().add(new JLabel(new ImageIcon(getClass().getResource("/gui/form.jpg")))); // Eingabefeld anlegen final JTextArea textArea = new JTextArea(); // Testtext einsetzen textArea.setText("Ein Testtext zum Testen des Textfeldes.\n" + "Und hier kommen die neuen Zeilen:" + "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + "Und wieder Text..."); // Eingabefeld scrollbar machen final JScrollPane scrollPane = new JScrollPane(textArea); // Layout-Informationen des Eingabefelds zusammenstellen final GridBagConstraints textAreaConstr = new GridBagConstraints(); // Eingabefeld soll sich den ganzen Platz nehmen textAreaConstr.fill = GridBagConstraints.BOTH; // auch bei Groessenaenderungen: volle Breite textAreaConstr.weightx = 1; // auch bei Groessenaenderungen: volle Hoehe textAreaConstr.weighty = 1; // Grid-Position (0,1), auf (0,0) liegt ja das Label textAreaConstr.gridy = 1; // scrollbares Eingabefeld einsetzen getContentPane().add(scrollPane, textAreaConstr); } }
Ich hoffe es hilft.
Viele Grüße
CarronGeändert von Carron (12.06.10 um 00:56 Uhr)
-
ohman ich heul gleich

Ich hab denn Code übernommen doch leider geht das nicht..es werden meine "anderen" fenster übernommen. Hab das in einer eigenen Package nochmal versucht und es hat wieder nicht geklappt...mache ich irgendwas falsch? was soll ich jetzt machen ?
Nochmals vielen Dank
-
N'Abend
Genau das meinte ich mit:
Daher lieber den Kopf etwas in die LayoutManager bzw. allgemein die GUI-Programmierung stecken und sich dann genau das bauen, was du haben willst.... werde ich vermeiden dir modifizierten Code zu geben, mit dem der Netbeans-GUI-Builder nichts anfangen kann.
Da lernt man ne ganze Menge, was auch für das übrige Programmieren außerhalb der GUI hilfreich ist, und nachvollziehbaren (vermutlich sauberen Code). Sollten dabei Probleme auftreten, die nicht mittels Forums- bzw. allgemeiner Internetsuche zu bewältigen sind, dann triffst du hier immer auf offene Ohren.
Testhalber kannst du ja in die von mir schon vorgeschlagene Anleitung-Klasse noch eine main()-Methode einbauen um das Ganze mal zu testen.
Code java:1 2 3
public static void main(String[] args) { new Anleitung("Anleitung - Fenster").setVisible(true); }
Wie gesagt: mit auskommentierten Bildern hat das bei mir so funktioniert.
Vielleicht nimmst du das als Ansatzpunkt und baust dir dann deine GUI von Hand.
Alternativ müsste sich jemand zu Wort melden, der mehr Ahnung vom Netbeans-GUI-Builder hat um dir da zu helfen, denn ich weiß nur dass es ihn gibt und habe ihn selbst nie eingesetzt.
Grüße & Gute Nacht
Carron
EDIT: dass das in einem anderen Package nicht funktioniert hat, kann daran liegen, dass er dann keinen Zugriff mehr auf die hinterlegten Bilder hat. Dann müsstest du allerdings eine NullPointerException aus einem der beiden new ImageIcon()-Aufrufe bekommen.Geändert von Carron (12.06.10 um 00:59 Uhr)
Ähnliche Themen
-
JTree in JScrollPane: JScrollPane automatisch anpassen
Von Guadrion im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 14.06.10, 09:12 -
[Swing] JList verschwindet wenn man sie in ein JScrollPane verpackt
Von Prophet05 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 06.06.09, 18:39 -
javax.swing.plaf.FontUIResource: Woher lädt Swing den Font
Von Deficiency im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 17.01.08, 08:38 -
Einbinden der MFC-RichTextBox in eine Swing-JScrollPane
Von testalucida im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 09.12.06, 12:24 -
Extreme Swing / Schicke Effekte mit Swing
Von Thomas Darimont im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 30.12.05, 02:32





Zitieren
Login





