簡體   English   中英

在Java框架中看不到所有文本

[英]Can't see all the text in a java frame

我有一個無法解決的問題。 我真的是編程新手。

主框架(glavnoOkno)打開正常。 單擊主框架上的按鈕時,將打開新框架。 而且您看不到其中的所有文本或文本框。 可以在屏幕寬度上移動的屏幕,但其他屏幕則不能。

我嘗試了.pack(),但是沒有用,然后我嘗試了ScrollPane(),但是也沒有用(可能是因為我不知道將它放在哪里:()..無論如何,我的代碼是分為四節課,我認為這很重要,如果我錯了,我也可以再加上兩節,所有變量都不是英文的,我希望這不是太大的問題。

所以...請幫忙。 這是主框架的類。 在底部定義第二個框架。

    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

     public class GlavnoOkno extends JFrame implements ActionListener {
          private JLabel naslov;
      private JButton gumbVnesiEleganten;
      private JButton gumbKoncaj;
      private JPanel plosca;
      private JScrollPane zvitek = new JScrollPane();
      private JTextArea tekstnoOkno = new JTextArea();
      private Trgovina trgovina;

public void setTrgovina(Trgovina trgovina) {
    this.trgovina = trgovina;
}

public Trgovina getTrgovina() {
    return trgovina;
}

public JTextArea getTekstnoOkno() {
    return tekstnoOkno;
}

public GlavnoOkno(Trgovina trg) {
    setTrgovina(trg);

    Container cp = this.getContentPane();
    cp.setLayout(new BorderLayout());

    naslov = new JLabel("Prosim, da pritisnete ustrezen gumb ...");
    cp.add(naslov, BorderLayout.PAGE_END);

    plosca = new JPanel();
    cp.add(plosca, BorderLayout.PAGE_START);

    gumbVnesiEleganten = new JButton("Vnesi eleganten cevelj.");
    plosca.add(gumbVnesiEleganten);
    gumbVnesiEleganten.addActionListener(this);

    gumbKoncaj = new JButton("Koncaj");
    plosca.add(gumbKoncaj);
    gumbKoncaj.addActionListener(this);

    zvitek.setAutoscrolls(true);
    cp.add(zvitek, BorderLayout.CENTER);
    zvitek.getViewport().add(tekstnoOkno);

    setSize(300, 400);
    setTitle("Glavno okno programa");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

    Object m = e.getSource();;

    if (m == gumbVnesiEleganten) {
        Eleganten novi = null;
        try {
            JFrame oknoVnesiEleganten = new VnesiEleganten(novi, this);
            oknoVnesiEleganten.setVisible(true);
            oknoVnesiEleganten.pack();
            trgovina.getCevlji1()[0] = novi;
        } catch (Exception e1) {
            getTekstnoOkno().append("Napaka - poskusite znova!\n");
        } 
    } 
    else if (m == gumbKoncaj) {
        System.exit(0);
    }
}

}

這是第二幀的課程。

    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;

    public class VnesiEleganten extends JFrame implements ActionListener {

    private Eleganten nov;
private JLabel naslov;
private GlavnoOkno glavnoOkno;
private JButton gumbShraniEleganten;
private JTextField poljeCena;
private JTextField poljePopust;
private JTextField poljeMaterial;
private JTextField poljeBarva;
private JTextField poljeOtroski;
private JTextField poljeSpol;
private JTextField poljePeta;
private JPanel plosca;


public void setEleganten(Eleganten novi) {
    this.nov = novi;
}
public Eleganten getEleganten() {return nov;}


public VnesiEleganten(Eleganten novi, GlavnoOkno okno) {

setEleganten(novi);
glavnoOkno = okno;

Container cp = this.getContentPane();
cp.setLayout(new BorderLayout());

naslov = new JLabel("Prosim, da vnesete polja, shranite eleganten cevelj ter zaprete okno.");
cp.add(naslov, BorderLayout.PAGE_END);

plosca = new JPanel();
cp.add(plosca, BorderLayout.PAGE_START);

plosca.add(new JLabel("Cena = "));
poljeCena = new JTextField(10);
plosca.add(poljeCena);

plosca.add(new JLabel("Popust = "));
poljePopust = new JTextField(10);
plosca.add(poljePopust);

plosca.add(new JLabel("Material = "));
poljeMaterial = new JTextField(20);
plosca.add(poljeMaterial);

plosca.add(new JLabel("Barva = "));
poljeBarva = new JTextField(20);
plosca.add(poljeBarva);

plosca.add(new JLabel("Otroski (false/true) = "));
poljeOtroski = new JTextField(10);
plosca.add(poljeOtroski);

plosca.add(new JLabel("Moski/zenski = "));
poljeSpol = new JTextField(10);
plosca.add(poljeSpol);

plosca.add(new JLabel("Visina pete = "));
poljePeta = new JTextField(10);
plosca.add(poljePeta);

gumbShraniEleganten = new JButton("Shrani");
plosca.add(gumbShraniEleganten);
gumbShraniEleganten.addActionListener(this);

setTitle("Vnos novega elegantnega cevlja.");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

}

public void actionPerformed(ActionEvent e) {

    Object m = e.getSource();;
    Eleganten novi = null;;

    if (m == gumbShraniEleganten) {
        try {
            novi = new Eleganten();
            novi.setCena(Double.parseDouble(poljeCena.getText()));
            novi.setPopust(Integer.parseInt(poljePopust.getText()));
            novi.setMaterial(poljeMaterial.getText());
            novi.setBarva(poljeBarva.getText());
            novi.setOtroski(Boolean.parseBoolean(poljeOtroski.getText()));
            novi.setSpol(poljeSpol.getText());
            novi.setVisinaPete(Double.parseDouble(poljePeta.getText()));
            setEleganten(novi);
            glavnoOkno.getTekstnoOkno().append("" + novi + "\n");
            poljeCena.setText("");
            poljePopust.setText("");
            poljeMaterial.setText("");
            poljeBarva.setText("");
            poljeOtroski.setText("");
            poljeSpol.setText("");
            poljePeta.setText("");
        } catch (Exception e1) {
            glavnoOkno.getTekstnoOkno().append("Napaka - poskusite znova!\n");
        }
    }
}

}

旁注:非英語變量名使代碼閱讀變得極為困難。 避免那樣。


認為您應該使用JScrollPane。 嘗試這個:

JPanel yourPanel = new JPanel();
// all kinds of code that adds elements to it
// now wrap the panel in a scroll pane
JScrollPane scrollPane = new JScrollPane(yourPanel);

// and use the scroll pane instead of your main component
Container cp = this.getContentPane();
cp.setLayout(new BorderLayout());
cp.add(scrollPane, BorderLayout.CENTER);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM