Witam. Od niedawna zacząłem bawić się javą i mam pewien problem z suwakiem. Spędziłem nad tym dwa dni, lecz żadne google mi nie pomogło. Mianowicie, zamiast suwaka pojawia się mała kropka, która najwyraźniej swej funkcji nie spełnia.
Jeżeli dodam linijkę kodu o następującej treści
suw.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
To widzę już mój suwak, lecz jego długość wynosi jeden pixel.
Jakby mógł ktoś mi pomóc, byłbym niezmiernie wdzięczny.
package paczka;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;
public class menu extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JFrame OknoError = new JFrame();
private JPanel Gora = new JPanel();
private JPanel Dol = new JPanel();
private JPanel PanelLogi = new JPanel();
private JTextField TextIloscRzutow = new JTextField(2);
private JTextField TextIloscScian = new JTextField(2);
private JTextField TextDodatek = new JTextField(2);
private JTextField TextWynik = new JTextField(3);
private JTextArea PoleLogow = new JTextArea(10,20);
private JLabel NapisK = new JLabel();
private JLabel NapisPlus = new JLabel();
private JLabel NapisRównaSię = new JLabel();
private JButton PrzyciskRzut = new JButton();
private JButton OkButton = new JButton("OK");
private JCheckBox Logi = new JCheckBox("logi rzutów");
private JScrollPane suw = new JScrollPane(PoleLogow);
private static menu Okno = new menu();
int LiczbaPowtorzen, LiczbaScianek, LiczbaDodatek;
String StringPowtorzen, StringScianek, StringDodatek, StringWynik;
int wylosowana, wynik, wynik2=0;
public static void main(String[] args)
{
Okno.setSize(300,98);
Okno.setLocation(300, 200);
Okno.setTitle("prosty rzut");
Okno.setResizable(false);
Okno.setDefaultCloseOperation(EXIT_ON_CLOSE);
Okno.setVisible(true);
}
public menu() {
Gora.add(TextIloscRzutow);
TextIloscRzutow.setText("1");
Gora.add(NapisK);
NapisK.setText("K");
Gora.add(TextIloscScian);
TextIloscScian.setText("6");
Gora.add(NapisPlus);
NapisPlus.setText("+");
Gora.add(TextDodatek);
TextDodatek.setText("0");
Gora.add(NapisRównaSię);
NapisRównaSię.setText("=");
Gora.add(TextWynik);
TextWynik.setEditable(false);
Gora.add(PrzyciskRzut);
PrzyciskRzut.setText("Rzut");
Dol.add(Logi);
Logi.setSelected(false);
PanelLogi.add(PoleLogow);
PoleLogow.setVisible(false);
PoleLogow.setEditable(false);
PanelLogi.add(suw);
suw.setVisible(false);
setLayout(new BorderLayout());
add(Gora, BorderLayout.NORTH);
add(Dol, BorderLayout.CENTER);
add(PanelLogi, BorderLayout.SOUTH);
Logi.addActionListener(this);
PrzyciskRzut.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == PrzyciskRzut )
{
// TODO Auto-generated method stub
// zbieramy informacje
StringPowtorzen = TextIloscRzutow.getText();
StringScianek = TextIloscScian.getText();
StringDodatek = TextDodatek.getText();
// przetwarzamy je na integera
try
{
LiczbaScianek = Integer.parseInt(StringScianek);
LiczbaPowtorzen = Integer.parseInt(StringPowtorzen);
LiczbaDodatek = Integer.parseInt(StringDodatek);
// losujemy liczbe
losuj();
// liczymy, wypisujemy wynik oraz czyścimy komórki.
wynik=wynik2+LiczbaDodatek;
StringWynik = Integer.toString(wynik);
TextWynik.setText(StringWynik);
wynik=0;
wylosowana=0;
wynik2=0;
}
catch(NumberFormatException e1)
{
pokazError();
}
} else if(e.getSource() == OkButton)
{
OknoError.setVisible(false);
}
else if(Logi.isSelected() == true)
{
Okno.setSize(300,272);
PoleLogow.setVisible(true);
suw.setVisible(true);
}
else if(Logi.isSelected() == false)
{
Okno.setSize(300,98);
PoleLogow.setVisible(false);
suw.setVisible(false);
}
}
private void pokazError()
{
JLabel NapisError = new JLabel();
JPanel Panel = new JPanel();
JPanel PanelButtona = new JPanel();
Panel.add(NapisError);
NapisError.setText("Wszystkie pola muszą być wypełnione cyframi!");
PanelButtona.add(OkButton);
OkButton.addActionListener(this);
OknoError.setLayout(new BorderLayout());
OknoError.add(Panel, BorderLayout.NORTH);
OknoError.add(PanelButtona, BorderLayout.SOUTH);
OknoError.setLocation(300, 300);
OknoError.setSize(300, 100);
OknoError.setVisible(true);
OknoError.setResizable(false);
}
private void losuj()
{
String Tekst = "";
Random los = new Random();
for (int i=0; i<LiczbaPowtorzen; i++)
{
wylosowana = los.nextInt(LiczbaScianek);
wylosowana++;
if (wylosowana>LiczbaScianek) {
wylosowana--;
}
Tekst = Tekst + "rzut ["+(i+1)+"]: " + wylosowana + "\n";
PoleLogow.setText(Tekst);
wynik2 = wynik2+wylosowana;
}
}
}
</image></url>