2016-06-01 1 views
0

Ich erstelle ein Phrasal-Template-Wortspiel, das auch als mad libs bekannt ist. Bisher konnte ich eine Konsole erstellen, um die Story anzuzeigen, die basierend auf der Eingabe zusammengestellt wurde. Ich konnte auch eine Hintergrundfarbe erstellen, aber ich blieb stecken, wenn ich Grafiken wie Rechtecke und Quadrate hinzufügen wollte. Wie würden Sie vorschlagen, dass ich das in mein Programm aufnehmen könnte?Wie füge ich Grafiken zu einer Methode in Java hinzu? Bitte schauen Sie sich mein Programm an

Vielen Dank im Voraus!

import java.util.Scanner; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
import javax.swing.ButtonGroup; 

public class MadLibs { 

public static void Action1() 
    { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Male Friend:"); 
    String maleFriend = input.nextLine(); 
    System.out.println("Adjective:"); 
    String adjective1 = input.nextLine(); 
    System.out.println("Past Tense Verb:"); 
    String pastTenseVerb1 = input.nextLine(); 
    System.out.println("Past Tense Verb 2:"); 
    String pastTenseVerb2 = input.nextLine(); 
    System.out.println("Large Number:"); 
    String largeNumber = input.nextLine(); 

    JLabel label = new JLabel("<html>Last summer, my friend "+ maleFriend + " got a job at the " + adjective1 +" Pastry Shop. For the first few<br>" 
      + "weeks, he" + pastTenseVerb1 + " the floors, " + pastTenseVerb2 + " on the shelves, and unloaded " + largeNumber + " pound sacks <br>" 
      +"of flour from the delivery trucks." 
      + "</html>" 
      , JLabel.CENTER); 
    JFrame window = new JFrame("Please print this");   
    window.setSize(600, 800); 
    window.add(label); 
    window.getContentPane().setBackground(Color.CYAN); 
    window.setVisible(true); 

    } 

public static void main(String []args){ 
    Action1(); 
} 

}

+1

Ich schaute es an. Es sieht gut aus. http://stackoverflow.com/questions/6118737/how-to-draw-in-jpanel-swing-graphics-java gibt ein Beispiel, das Sie vielleicht betrachten möchten. – zapl

+1

* "Wie würden Sie vorschlagen, dass ich das in mein Programm einbauen könnte?" * Wenn es keine Absicht gibt, 'Rückgängig' -Fähigkeit hinzuzufügen, ist ein guter Weg, ein 'BufferedImage' als Zeichnungsoberfläche zu verwenden, wie in [dieser Antwort] (http://stackoverflow.com/a/12683632/418556). –

+2

Siehe [Erkennung/Behebung für die hängenden Schließen-Klammer eines Codeblocks] (http://meta.stackexchange.com/q/251795/155831) für ein Problem, das nicht mehr gestört werden konnte. –

Antwort

3

Sie werden eine Erweiterung der JPanel Klasse erstellen möchten.

class drawPanel extends JPanel { 
    drawPanel() { 
    } 

    @Override 
    public void paintComponent(Graphics g) { 
     super.paintComponent(g); 
     //Put your graphics code here 
    } 
} 

Dann erstellen Sie einfach den DrawPanel in der Hauptklasse, fügen Sie Ihr Etikett, um es, und die DrawPanel zu Ihrem JFrame hinzufügen.

JFrame window = new JFrame("Please print this"); 
//Create your custom JPanel class here 
drawPanel content = new drawPanel(); 
//Add the label to the drawPanel instead of the JFrame 
content.add(label);  
window.setSize(600, 800); 
//Add the drawPanel to the JFrame 
window.add(content); 
window.getContentPane().setBackground(Color.CYAN); 
window.setVisible(true); 
+0

Vielen Dank für Ihre Antwort! Ich habe versucht, es zu meinem Code hinzuzufügen, aber es hieß: Es ist keine umschließende Instanz des Typs MadLibsCulminating verfügbar, und das neue drawPanel(); wurde unterstrichen. Ich habe ein DrawPanel in meiner Hauptklasse erstellt, aber das wurde auch unterstrichen .. Was könnte das Problem sein? –

+0

Wenn Sie die DrawPanel-Klasse in Ihre MadLibs-Klasse einbetten möchten. Sie müssen DrawPanel als statische Klasse definieren. Dadurch wird drawPanel zu einer geschachtelten Klasse. –

Verwandte Themen