[suwak]Problem z suwakiem

0

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.

user image
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.

user image
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>

0

Usuń wiersz

PanelLogi.add(PoleLogow);
. I formatuj sensownie kod.

0

:| A ja się tyle nad tym męczyłem... Ok Wielkie dzięki za pomoc. Co do formatowania. Jak wspomniałem. Dopiero zaczynam :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1