suwaki java

0
  1. Mam problem z suwakami mianowicie. Jak dodam je do jakiegoś obrazka lub czegokolwiek innego i napisze okno.setLayout(null); jak się nie myle odpowiada to za autorozmieszczenie, to znika mi wszystko w oknie a jak usunę to okno.setLayout(null); to widać suwaki ale ale jest autorozmieszczenie którego nie chcę. Jak to rozwiązać.
  2. Istnieje polecenie aby zamknąć bieżące okno a nie wyjść z programu?
0
  1. setVisible(false);
  2. Co nazywasz suwakiem, JSlider czy elementy JScrollPane? Najlepiej pokaż kod, bo, imho, fantazjujesz.
0

w.addActionListener(new ActionListener()
{

		public void actionPerformed(ActionEvent e) 
		{
			JFrame okno=new JFrame("Dane"); //tworzenie okna
			okno.setSize(800,600);
			//okno.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
			 
			okno.setLayout(null); // wylaczamy autorozmieszczanie
			okno.setVisible(true);
		
    
			
			
			String dane=" ";
			try
			{
									
				FileReader plik = new FileReader ("studenci.txt");
	 			BufferedReader odczyt = new BufferedReader (plik);
	 				while (dane!=null)
	 				
      				{ 
      				a=a+1;
      				
      				dane=odczyt.readLine(); 
      				if(dane!=null)
      				{
      				 
      			   JLabel napis=new JLabel(a+". "+dane); 
      								
      				napis.setBounds(50,a*15,500,50);
      			    okno.getContentPane().add(napis);
    		 	    }
      				
						
      				          				
    				  }
    				odczyt.close();
    			
					a=0;
			}catch (IOException w)
			{
				JOptionPane.showMessageDialog(null,"Blad odczytu pliku tekstowego");
			}
		
		}

	});

JScrollPane gdy chcĘ tutaj dodać suwaki okno.getContentPane().add(new JScrollPane (napis));
I jeżeli jest włączone okno.setLayout(null); to w ogóle okno się nie pokazuje jeżeli natomiast wyłącze to autorozmieszczenie to suwaki się pojawiają ale wtedy wczytane napisy nie są jeden pod drugim.

0

To

okno.getContentPane().add(new JScrollPane (napis));

jest pozbawione sensu. JScrollPane ma zawierać wszystkie etykiety, a nie jedną. Wybierz jedną z dwóch możliwości:

  • utwórz JPanel, p a obiekty JLabel dodawaj do panelu pan, na końcu okno daj
    okno.add(new JScrollPane(pan));
  • utwórz pole tekstowe JTextArea ta, zamiast
      JLabel napis=new JLabel(a+". "+dane);                                                                         
      napis.setBounds(50,a*15,500,50);

daj ta.append(a+"."+dane+"\n");, na końcu daj okno.add(new JScrollPane(ta));

0

a co do zamknięcia konkretnego okna. Jak to zrobić?

0

Jeśli chcesz ukryć bez udziału użytkownika, to okno.SetVisible(false). Jeżeli okno ma zniknąć po "kliknięciu w krzyżyk", to

okno.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);

Powinieneś też zmienić ten fragment:

                        public void actionPerformed(ActionEvent e)
                        {
                                JFrame okno=new JFrame("Dane"); //tworzenie okna
                                okno.setSize(800,600);

//Zmienna okno winna być składową klasy (a nie zmienną lokalną) 
//na taki
                        public void actionPerformed(ActionEvent e)
                        {
                                if(okno==null)
                                {
                                    JFrame okno=new JFrame("Dane"); //tworzenie okna
                                    okno.setSize(800,600);
                                    //odczytanie pliku ................
                                }
                                okno.setVisible(true);                                
0

Zrobiłem tak jak radziłeś z tym polem tekstowym ale nie uwidaczniają się dalej te suwaki a po drugie wypisuje tylko pierwszą linię z pliku.

0

Suwaki się pokażą jak bedą porzebne. Jak chcesz żeby były zawsze, to

new JScrollPane(ta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

Na pewno coś pokręciłeś z dodawaniem do pola tekstowego.

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