Âlso die breite die ich ausgeteste habe ist „width: 55em;“. Einfach mal einbauen und dann sollten alle Auflösungen >= 1024(breite) ordentlich dargestellt werden. Die breite hat aber keine Auswirkung auf Zeilenumbruch!
Gut Schuß
VuuRWerK
Âlso die breite die ich ausgeteste habe ist „width: 55em;“. Einfach mal einbauen und dann sollten alle Auflösungen >= 1024(breite) ordentlich dargestellt werden. Die breite hat aber keine Auswirkung auf Zeilenumbruch!
Gut Schuß
VuuRWerK
* MovingBar.java
* by André Uhres
*
*Den Hit-Button drücken.
*Wenn der Balken (moving bar) genau oben drüber ist, den Hit-Button wieder loslassen.
*Der Balken bewegt sich natürlich immer schneller!
*Pro Treffer gibt's einen Punkt. Bei Fehlschuss wird ein Punkt abgezogen.
*Pro Level muss man 10 Treffer erreichen.
*Mit 10 Punkten (also kein Fehlschuss) kommt man in den nächsten Level.
*Viel Glück!
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.*;
import javax.swing.*;
import javax.swing.Timer;
import javax.swing.border.*;
public class MovingBar extends JFrame implements ActionListener{
private boolean rightDirection = true;
private boolean newGame = true;
private JPanel toolbar = new JPanel();
private JPanel results = new JPanel();
private JButton btn = new JButton("Hit");{
btn.setPreferredSize(new Dimension(100,100));
}
private JLabel label = new JLabel();
private Bar bar;
private int position, points;
private int speed = 1;
private int level = 0;
private Toolkit tools = Toolkit.getDefaultToolkit();
private String score;
public MovingBar(){
setTitle("Moving Bar - Level 1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
bar = new Bar();
mainPanel.add(bar);
getContentPane().add(mainPanel,BorderLayout.CENTER);
btn.addActionListener(this);
toolbar.add(btn);
results.add(label);
getContentPane().add(results,BorderLayout.NORTH);
getContentPane().add(toolbar,BorderLayout.SOUTH);
setSize(500, 300);
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
bar.setPosition(0);
Timer timer = new Timer(1,this);
timer.start();
label.setText("V");
}
public void actionPerformed(ActionEvent evt){
if(evt.getSource() instanceof JButton){
byte b = 5b;
if( newGame ){
label.setText("");
points=0;
newGame = false;
}
if( position>200 && position<300 ){
hit();
}else{
if(speed<=(11+level)){
points--;
score=points+" points";
}
}
label.setText(score);
return;
}
if(rightDirection) position += speed;
else position -= speed;
if( position >480 ) rightDirection=false;
if( position <0 ) rightDirection=true;
bar.setPosition(position);
bar.repaint();
}
private void hit() {
if(speed<=(11+level)){
points++;
tools.beep();
speed++;
score=points+" points";
if(speed==(11+level)){
if(points==10){
score = score + " Super !";
level++;
setTitle("Moving Bar - Level "+(level+1));
}else{
score = score + " Game Over";
}
label.setText(score);
JOptionPane.showMessageDialog(this,"Level "+(level+1),"Click OK to continue",JOptionPane.INFORMATION_MESSAGE);
speed = 1+level;
newGame = true;
}
}
}
public static void main(final String[] args) {new MovingBar();}
}
/*
* Bar
*/
class Bar extends JPanel {
public Bar() {
setPreferredSize(new Dimension(10, 30));
setBackground(Color.red);
setBorder(new LineBorder(Color.BLACK));
}
public void setPosition(final int position){
setLocation( position, 0 );
}
}```
Edit: Respekt, VuuRWerK, das funktioniert jetzt schonmal so weit. Nur noch die Sache mit der Zeilenhöhe...
Genau, das Problem mit der Zeilehöhe rührt daher das Geshi jede einzelne Zeile des Quellcodes in ein eigenes div-Element packt. Da ein div bekanntermaßen ein Blockelement ist wird es auch auf jeder zeile angezeigt, den Sinn dahinter versteh ich, bei aller liebe, nicht …
Daher war eben meine Frage inwiefern Ihr zugriff auf den Geshi-Code habt und ob es euch vllt möglich ist die divs herauszunehmen. Da ich ja alles in ein pre-Element gepackt habe ist die Sache mit den Zeilenumbrüchen in der Quellcode-Ansicht durch einfache ’
’ realisierbar.
Mir düngt zwar gerade noch eine andere absurde Umsetzung des ganzen, aber erstmal eins abschließen
Gut Schuß
VuuRWerK
ja wie gesagt wir haben vollen Zugriff auf den Geshicode.
geschi wird hier im Forum aber auch im NoPaste fürs Highlight benutzt, das wurde beides von uns mit geshi nachgerüstet, daher können wir im Code rumspielen wie wir wollen
Ok, dann könnt Ihr mal versuchen die Zeilenweiße divs rauszunehmen und die Zeilenumbrüche entweder im Quellcode belassen, quasi wie der nutzer es eingibt oder wenn die entfernt werden dann mit ’
’ zuvervollständigen. Durch das pre-Element werden die Umbrüche auch wieder dargestellt.
Gut Schuß
VuuRWerK
* MovingBar.java
* by André Uhres
*
*Den Hit-Button drücken.
*Wenn der Balken (moving bar) genau oben drüber ist, den Hit-Button wieder loslassen.
*Der Balken bewegt sich natürlich immer schneller!
*Pro Treffer gibt's einen Punkt. Bei Fehlschuss wird ein Punkt abgezogen.
*Pro Level muss man 10 Treffer erreichen.
*Mit 10 Punkten (also kein Fehlschuss) kommt man in den nächsten Level.
*Viel Glück!
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.text.*;
import javax.swing.*;
import javax.swing.Timer;
import javax.swing.border.*;
public class MovingBar extends JFrame implements ActionListener{
private boolean rightDirection = true;
private boolean newGame = true;
private JPanel toolbar = new JPanel();
private JPanel results = new JPanel();
private JButton btn = new JButton("Hit");{
btn.setPreferredSize(new Dimension(100,100));
}
private JLabel label = new JLabel();
private Bar bar;
private int position, points;
private int speed = 1;
private int level = 0;
private Toolkit tools = Toolkit.getDefaultToolkit();
private String score;
public MovingBar(){
setTitle("Moving Bar - Level 1");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel mainPanel = new JPanel();
bar = new Bar();
mainPanel.add(bar);
getContentPane().add(mainPanel,BorderLayout.CENTER);
btn.addActionListener(this);
toolbar.add(btn);
results.add(label);
getContentPane().add(results,BorderLayout.NORTH);
getContentPane().add(toolbar,BorderLayout.SOUTH);
setSize(500, 300);
setResizable(false);
setLocationRelativeTo(null);
setVisible(true);
bar.setPosition(0);
Timer timer = new Timer(1,this);
timer.start();
label.setText("V");
}
public void actionPerformed(ActionEvent evt){
if(evt.getSource() instanceof JButton){
byte b = 5b;
if( newGame ){
label.setText("");
points=0;
newGame = false;
}
if( position>200 && position<300 ){
hit();
}else{
if(speed<=(11+level)){
points--;
score=points+" points";
}
}
label.setText(score);
return;
}
if(rightDirection) position += speed;
else position -= speed;
if( position >480 ) rightDirection=false;
if( position <0 ) rightDirection=true;
bar.setPosition(position);
bar.repaint();
}
private void hit() {
if(speed<=(11+level)){
points++;
tools.beep();
speed++;
score=points+" points";
if(speed==(11+level)){
if(points==10){
score = score + " Super !";
level++;
setTitle("Moving Bar - Level "+(level+1));
}else{
score = score + " Game Over";
}
label.setText(score);
JOptionPane.showMessageDialog(this,"Level "+(level+1),"Click OK to continue",JOptionPane.INFORMATION_MESSAGE);
speed = 1+level;
newGame = true;
}
}
}
public static void main(final String[] args) {new MovingBar();}
}
/*
* Bar
*/
class Bar extends JPanel {
public Bar() {
setPreferredSize(new Dimension(10, 30));
setBackground(Color.red);
setBorder(new LineBorder(Color.BLACK));
}
public void setPosition(final int position){
setLocation( position, 0 );
}
}```
Das gibts doch nicht... da muss irgendein Code außerhalb vom geshi sein, der die
wieder wegmacht :?
Ja eben irgendwo werden die ’
’ entfernt sonst hätten die ja nicht alles in divs gepackt aber ich hab vermutet das passiert noch bevor das HTML erzeugt wird …
Ich schau mal ob ich den Geshi-Code irgendwo habe, glaube im Joomla wird der auch verwendet, vermute zumindest den da gesehen zu haben, vllt findet sich was.
Gut Schuß
VuuRWerK
[EDIT]
Meine Vermutung ist das zwischen Zeile 1927 bis 1985 der Geshi-Klasse(V 1.0.4) die Zeilen gebildet werden, also jede Zeile wird mit einem div-Element zusätzlich belästigt. Vielleicht sollte man da diese $start und $end Variablen bearbeiten, quasi im $start nix stehen haben und im $end ein einfache ’
'.
Meine Vermutung.
[/EDIT]
Ja, das hab ich genau so gemacht, wie du es in dem Edit beschrieben hast. Nur… wenn ich dann einfach mal den Code, den das Geshi letztendlich zurückgibt, ausgeben lasse - schaut das gut aus. Ich hab nur nicht den geringsten Schimmer, an welcher Stelle die
's wieder weggemacht werden. Aber anscheinend macht das das Forum
Gibt es noch eine Forum-interne Methode welche Quellcode parsed? Das diese vielleicht nur ungenügend eingedämmt wurde von Geshi? Weil, sonst ist das für mich ebenfalls total unverständlich in Beiträgen die ’
’ zu entfernen wo doch die Funktion nl2br daraus HTML-br’s macht und das wird unter Garantie auch in diesem Forum verwendet. Es sollte nur im Quellcode nicht mehr gewandelt werden.
Gut Schuß
VuuRWerK
Illu ich hab dir doch gesagt nimm erstmal das pure geshi und spiele damit rum
wenn das klappt dann können wir/du genauer nachsehen ob das Forum/NoPaste da noch was versaut und das gegebenenfalls anpassen
Das pure Geshi klappt doch…
komisch jetzt passt es wieder