Menu
Coddy logo textTech

Text-Komponente

Teil des Abschnitts Objektorientierte Programmierung der Rust-Journey von Coddy. Lektion 50 von 61.

challenge icon

Aufgabe

Einfach

Aufbauend auf dem Draw-Trait, den du in der vorherigen Lektion erstellt hast, fügen wir unsere erste echte UI-Komponente hinzu: ein TextField. Diese Komponente stellt ein Textanzeigeelement in unserem Dokumentsystem dar.

Du erweiterst dein Projekt um eine neue Moduldatei:

  • draw.rs: Behalte deinen Draw-Trait aus der vorherigen Aufgabe bei.
  • text_field.rs: Erstelle eine TextField-Struktur mit einem öffentlichen Feld content (einem String). Implementiere den Draw-Trait für TextField, sodass der Aufruf von draw() den Text in einem bestimmten Format ausgibt: Text: {content}
  • main.rs: Binde beide Module ein und erstelle eine TextField-Instanz. Rufe ihre draw()-Methode auf, um die Komponente darzustellen.

Denke daran, dass dein text_field-Modul den Draw-Trait aus dem draw-Modul verwenden muss. Du kannst darauf mit crate::draw::Draw zugreifen, da beide Module Teil desselben Crates sind.

Die folgende Eingabe wird bereitgestellt:

  • Eine Zeichenkette, die den Inhalt des Textfelds darstellt

Deine Ausgabe sollte genau diesem Format entsprechen:

Text: Hello World

Probier es selbst

mod draw;
mod text_field;

use draw::Draw;

pub struct Label {
    pub text: String,
}

impl Draw for Label {
    fn draw(&self) {
        println!("{}", self.text);
    }
}

fn main() {
    let mut input = String::new();
    std::io::stdin().read_line(&mut input).expect("Failed to read line");
    let content = input.trim().to_string();

    // TODO: Erstelle eine TextField-Instanz und rufe draw() darauf auf
}

Alle Lektionen in Objektorientierte Programmierung

Übe selbstständig: Online-Rust-Compiler