Nieprawidłowe ułożenie paneli

0

Witam,
chcę,aby wyświetlał mi wszystkie etykiety w oddzielnych wierszach,a wyświetla w jednym:)

Oto kod:

import javax.swing.*;         
import java.awt.*;
import java.awt.event.*;
import java.io.*; 
import java.util.*;
import javax.swing.*;
public class czasopismo1 implements ActionListener {
    private JPanel wiersz1,wiersz2,wiersz3,wiersz4;
    private JLabel etykieta;
    private JLabel etykieta1;
    private JLabel etykieta2;
    private JLabel etykieta3;
    private JTextField nazwaW;
    private JTextField nazwaCz;
    private JTextField tematyka;
    private JTextArea spisTresci;
    public Component createComponents() 
    { 
        final JPanel plansza = new JPanel();
        wiersz1=new JPanel();
        wiersz2=new JPanel();
        wiersz3=new JPanel();
        wiersz4=new JPanel();
        
        etykieta= new JLabel();
        etykieta.setText("Nazwa Czasopisma: ");
	etykieta.setFont(new Font("Arial", Font.BOLD+Font.ITALIC, 18));
	nazwaCz=new JTextField("");
	etykieta1= new JLabel();
        etykieta1.setText("Nazwa Wydawnictwa: ");
	etykieta1.setFont(new Font("Arial", Font.BOLD+Font.ITALIC, 18));
	nazwaW=new JTextField("");
	etykieta2=new JLabel();
        etykieta2.setText("Czestotliwosc wydawania: ");
	etykieta2.setFont(new Font("Arial", Font.BOLD+Font.ITALIC, 18));
	tematyka=new JTextField("");
	etykieta3=new JLabel();
        etykieta3.setText("Spis tresci: ");
	etykieta3.setFont(new Font("Arial", Font.BOLD+Font.ITALIC, 18));
        
        spisTresci = new JTextArea("");
        spisTresci.setFont(new Font("Arial", Font.BOLD, 16));
        spisTresci.setLineWrap(true);
        spisTresci.setWrapStyleWord(true);
        JScrollPane areaScrollPane = new JScrollPane(spisTresci);
        areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        areaScrollPane.setPreferredSize(new Dimension(200, 200));
        
        plansza.setBorder(BorderFactory.createEmptyBorder(10,30,10,30));
        wiersz1.setLayout(new BoxLayout(wiersz1, BoxLayout.X_AXIS));
        wiersz2.setLayout(new BoxLayout(wiersz2, BoxLayout.X_AXIS));
        wiersz3.setLayout(new BoxLayout(wiersz3, BoxLayout.X_AXIS));
        wiersz4.setLayout(new BoxLayout(wiersz4, BoxLayout.X_AXIS));
        
        wiersz1.add(etykieta);
        wiersz1.add(nazwaCz);
        wiersz2.add(etykieta1);
        wiersz2.add(nazwaW);
        wiersz3.add(etykieta2);
        wiersz3.add(tematyka);
        wiersz4.add(etykieta3);
        
        plansza.add(wiersz1);
        plansza.add(wiersz2);
        plansza.add(wiersz3);
        plansza.add(wiersz4);
        plansza.add(areaScrollPane); 
        
        return plansza;
        
    }   
    public static void main(String[] args) {
        JFrame ramka = new JFrame("Aplikacja ZADANIE");
 
        czasopismo1 aplikacja = new czasopismo1();
        Component zawartosc = aplikacja.createComponents();
        ramka.getContentPane().add( zawartosc , BorderLayout.CENTER);
        ramka.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        ramka.pack();
        ramka.setVisible(true);
        
    }

    public void actionPerformed(ActionEvent e) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

}

0

Ustaw dla panelu plansza jednokolumnowy GridLayout.

0

Ok poradziłem sobie inaczej mam teraz inny problem:
Chcę,żeby buttony były obok siebie,a nie pod sobą.

Oto kod:

import javax.swing.*;         
import java.awt.*;
import java.awt.event.*;
import java.io.*; 
import java.util.*;
import javax.swing.*;
public class sko implements ActionListener
{   
    private JButton zapisz,zamknij;
    private JLabel etykieta,nazwaCz_, nazwaW_ ,spisTresci; 
    private JTextField nazwaCz,nazwaW;
    private JTextArea opis;
    private JPanel wiersz1,wiersz2,wiersz3,wiersz4;
    public Component createComponents() 
    { 
        final JPanel plansza = new JPanel();
        wiersz1=new JPanel();
        wiersz2=new JPanel();
        wiersz3=new JPanel();
        wiersz4=new JPanel();
        
       	zapisz = new JButton("Dodaj");        
        zapisz.addActionListener(this);
        
        zamknij = new JButton("Zamknij");        
        zamknij.addActionListener(this);
 
    	etykieta = new JLabel();
    	etykieta.setText("Dodaj czasopismo");
	etykieta.setFont(new Font("Arial", Font.BOLD+Font.ITALIC, 16));
 
    	nazwaCz_ = new JLabel();
    	nazwaCz_.setText("Nazwa Czasopisma:        ");
        nazwaCz_.setFont(new Font("Times New Roman", Font.BOLD, 14));
        nazwaCz = new JTextField(30);
 
    	nazwaW_ = new JLabel();
    	nazwaW_.setText("Nazwa Wydawnictwa:     ");
	nazwaW_.setFont(new Font("Times New Roman", Font.BOLD, 14));
        nazwaW = new JTextField(30);
 
    	spisTresci = new JLabel();
    	spisTresci.setText("Spis tresci:");
	spisTresci.setFont(new Font("Times New Roman", Font.BOLD, 15));
        
        
 
    	
	
	opis = new JTextArea("1.");
		
	opis.setFont(new Font("Arial", Font.BOLD, 16));
	opis.setLineWrap(true);
	opis.setWrapStyleWord(true);
	JScrollPane areaScrollPane = new JScrollPane(opis);
	areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
	areaScrollPane.setPreferredSize(new Dimension(200, 200));
		
 
        plansza.setBorder(BorderFactory.createEmptyBorder(5,30,10,30));
        wiersz1.setLayout(new BoxLayout(wiersz1, BoxLayout.X_AXIS));
        wiersz2.setLayout(new BoxLayout(wiersz2, BoxLayout.X_AXIS));
        wiersz3.setLayout(new BoxLayout(wiersz3, BoxLayout.X_AXIS));
        wiersz4.setLayout(new BoxLayout(wiersz4, BoxLayout.X_AXIS));
        plansza.setLayout(new BoxLayout(plansza, BoxLayout.Y_AXIS));  
 
        wiersz1.add(etykieta);
        wiersz2.add(nazwaCz_);
        wiersz2.add(nazwaCz);
        wiersz3.add(nazwaW_);
        wiersz3.add(nazwaW);
      	wiersz4.add(spisTresci);
        
 
        plansza.add(wiersz1);
        plansza.add(wiersz2);
        plansza.add(wiersz3);
        plansza.add(wiersz4);
        plansza.add(areaScrollPane); 
        plansza.add(zapisz);
        plansza.add(zamknij);
        return plansza;
        
        
    }
 
    public static void main(String[] args) 
    { 
 
       JFrame ramka = new JFrame("Dodaj czasopismo");
 
        sko aplikacja = new sko();
        Component zawartosc = aplikacja.createComponents();
        ramka.getContentPane().add( zawartosc , BorderLayout.CENTER);
        ramka.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        ramka.pack();
        ramka.setVisible(true);
    }

    public void actionPerformed(ActionEvent e) {
        Object z=e.getSource();
        try{
        PrintWriter zapis = new PrintWriter("c:/ala22.txt");
        if(z==zapisz)
        {   
           int odp= JOptionPane.showConfirmDialog(null,"Czy na pewno dodac nowe czasopismo?","komunikat",JOptionPane.YES_NO_OPTION);
           if(odp==JOptionPane.YES_OPTION) 
           {
            zapis.println(etykieta.getText());
            zapis.println(nazwaCz_.getText()+nazwaCz.getText());
            zapis.println(nazwaW_.getText()+nazwaW.getText());
            zapis.println();
            zapis.println(spisTresci.getText());
            Scanner skaner=new Scanner(opis.getText());
            while(skaner.hasNext())
                zapis.println(skaner.nextLine()+ "\n");
            zapis.close();
            }
           else if(odp==JOptionPane.NO_OPTION)
               JOptionPane.showMessageDialog(null,"Anulowano przez użytkownika");
           }
            else if(z==zamknij)
                System.exit(0);
        
        }       catch ( Exception ew )
            {
                ew.printStackTrace();
            }
        

    }
}
 
1

Umieść przyciski na dodatkowym panelu, a do planszy dodaj ten panel (a nie przyciski).
Btw, po co Ci przycisk Zamknij? Dodaj instrukcję

ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

i kliknięcie w krzyżyk będzie kończyło program.

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