staging.inyokaproject.org

java Programm läuft nicht wie es soll auf linux

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

schlakob

Anmeldungsdatum:
24. Juli 2016

Beiträge: Zähle...

Hallo ich habe in diesem Bereich erst vor ein paar Tagen ein Thema zu diesem Programm gestellt jedoch wegen eines anderen Problems. Also ich habe nun das Problem, dass sich mein Programm, welches auf Windows 7 geschrieben wurde einwandfrei darauf läuft nur auf einem Raspberry pi 2 mit Raspbian nicht richtig^^.

Kurz zusammengefasst soll es einfach nur ein Kalender sein, welcher den Tag mit Datum anzeigt. dieses Programm möchte ich nun nur auf meinen Raspberry pi 2 laufen lassen, da er nicht so viel strom verbraucgt und der Kalender so durchgänig laufen kann.

Nur mein Problem ist dass sich das Programm nur in einer ca. 5 cm großen spalte öffnet (ohne Fensterrand) antelle von meine gewünschten Vollbild. Ich bekam auch schon den Tipp den Compiler zu verändern, jedoch habe ich davon wenig Ahnung :/. Vllt. liegt es daran dass ich es auf dem 64. Bit Rechner kompeliert habe und auf einem 32. Bit ausführen will oder es liegt einfach am Quellcode:

 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
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.time.LocalDate;

public class frame extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel("Time Remaining 300 seconds", SwingConstants.CENTER);
  // Ende Attribute
  
  public frame() { 
    // Frame-Initialisierung
    super();
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 179; 
    int frameHeight = 872;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    setResizable(false);
    Container cp = getContentPane();
    cp.setLayout(null);
    setExtendedState(JFrame.MAXIMIZED_BOTH);
    setUndecorated(true);
    setVisible(true);     
    // Anfang Komponenten

    setTitle("Kalender");
    jLabel1.setBounds(0, 0, 1780, 833);
    jLabel1.setLocation((this.getWidth()-jLabel1.getWidth())/2,(this.getHeight()-jLabel1.getHeight())/2);
    jLabel1.setFont(new Font("Arial Black", Font.BOLD, 120));
    jLabel1.setForeground(Color.GRAY);
    cp.add(jLabel1);
    LocalDate date = LocalDate.now();
    DateTimeFormatter df;
    df = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL);     // Sonntag, 31. Januar 2016
    jLabel1.setText(date.format(df));    
    cp.setBackground(Color.BLACK);
    // Ende Komponenten
    
    setVisible(true);
  } 
    
    
  public static void main(String[] args) {  
    new frame();
  } 
    
  
} 

Vielen Dank für eure Hilfe!!

Planspiel

Anmeldungsdatum:
2. Mai 2016

Beiträge: 673

Ich bin jetzt nicht so der Java-Fachmann,

aber ich würde dass erste 'setVisible(true)' mal rausnehmen. Über das zweite 'setVisible(true)' würde ich ein 'pack()' setzen und das 'setExtendedState(JFrame.MAXIMIZED_BOTH)' probeweise mal auskommentieren.

Wenn Du sowieso schon die Bildschirmgröße abfragst (Toolkit...), könntest Du die Werte auch für ein 'setSize()' nehmen, um die Anwendung zu maximieren.

Um den Frame zu zentrieren geht meines Wissens auch 'setPositionRelativeTo(null)' (oder so ähnlich 😉 ).

homer65

Avatar von homer65

Anmeldungsdatum:
8. November 2005

Beiträge: 506

Interessant finde ich auch das du mit getSize() die Größe des Frame abfragst, bevor du ihn komplett zusammengebaut hast.

schlakob

(Themenstarter)

Anmeldungsdatum:
24. Juli 2016

Beiträge: 7

Planspiel schrieb:

Ich bin jetzt nicht so der Java-Fachmann,

aber ich würde dass erste 'setVisible(true)' mal rausnehmen. Über das zweite 'setVisible(true)' würde ich ein 'pack()' setzen und das 'setExtendedState(JFrame.MAXIMIZED_BOTH)' probeweise mal auskommentieren.

Wenn Du sowieso schon die Bildschirmgröße abfragst (Toolkit...), könntest Du die Werte auch für ein 'setSize()' nehmen, um die Anwendung zu maximieren.

Um den Frame zu zentrieren geht meines Wissens auch 'setPositionRelativeTo(null)' (oder so ähnlich 😉 ).

Danke danke danke hat super funktioniert also ich habe nur umgschrieben:

1
2
3
4

    int frameWidth = d.width; 
    int frameHeight = d.height; 
    setSize(frameWidth, frameHeight);

anstelle von setExtendedState(JFrame.MAXIMIZED_BOTH); danke danke danke

Antworten |