0
나는 JTabbedPane
에 문제를 가지고, 내 JPanel
중 하나에 테두리가 나는 경계는 기본적으로이처럼 JTabbedPane
가 가지고있는 레이아웃에 따라 확장되도록 JTabbedPane
이 자신의 레이아웃의 한 가정JTabbedPane의 레이아웃을 변경할 수 있습니까?
나는 그가 완전히 망쳐 놨지만, jTabbedPane.setLayout(new GridBagLayout());
를 사용하여 JTabbedPane
의 테두리를 변경 시도하고 다음과 같이 밝혀 :
방법은 다음과 같습니다
실제로 할 수 있습니다 달성하고자하는 것을 수용하기 위해 레이아웃을 변경하거나 더 좋은 방법이 있습니까?
모든 도움을 주시면 대단히 감사하겠습니다. 감사합니다. 내 질문에 개선이 필요하거나 다른 코드 또는 설명이 필요한 경우 알려주십시오.
코드 :
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.*;
public class Test extends JFrame
{
public Test()
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch(Exception e)
{
e.printStackTrace();
}
setLayout(new GridBagLayout());
add(new HomePanel());
pack();
setVisible(true);
setLocationRelativeTo(null);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
}
public static void main(String[] args)
{
Test t = new Test();
}
public class HomePanel extends JPanel
{
protected JTabbedPane tabbedPane;
public HomePanel()
{
tabbedPane = new JTabbedPane();
tabbedPane.setPreferredSize(new Dimension(800, 500));
tabbedPane.addTab("Your Bookings", new ShowBookingPanel());
add(tabbedPane);
}
}
public class ShowBookingPanel extends JPanel
{
protected JTable bookingTable;
protected JScrollPane scrollPane;
public ShowBookingPanel()
{
TitledBorder titledBorder = new TitledBorder("Your Bookings");
titledBorder.setTitleJustification(TitledBorder.CENTER);
Border border = new CompoundBorder(titledBorder, new EmptyBorder(40, 50, 40, 50));
setBorder(border);
String[] columnNames = {"Check-In Date", "Check-Out Date", "Room Type", "Price", "Action"};
Object[][] data = {{"22/09/1997", "TBA", "Single", "Priceless"}, {"12/03/2017", "23/04/2017", "Double", "£50"},
{"12/03/2017", "23/04/2017", "Double", "£50"}, {"12/03/2017", "23/04/2017", "Double", "£50"},
{"12/03/2017", "23/04/2017", "Double", "£50"}, {"12/03/2017", "23/04/2017", "Double", "£50"},
{"12/03/2017", "23/04/2017", "Double", "£50"}, {"12/03/2017", "23/04/2017", "Double", "£50"}};
TableModel model = new DefaultTableModel(data, columnNames)
{
public boolean isCellEditable(int row, int column)
{
return false;
}
};
bookingTable = new JTable(model);
bookingTable.setPreferredScrollableViewportSize(new Dimension(500, 300));
bookingTable.setFillsViewportHeight(true);
bookingTable.getTableHeader().setReorderingAllowed(false);
bookingTable.getTableHeader().setResizingAllowed(false);
bookingTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
scrollPane = new JScrollPane(bookingTable);
setLayout(new GridBagLayout());
add(scrollPane);
}
}
}
* "나는 이것을 다음과 같이 만들었습니다."* 제목이 지정된 다른 테두리 안에 빈 테두리 안에 제목이있는 테두리를 사용하면됩니다. 그러나 정확히 같은 제목의 제목이 붙은 두 개의 테두리가있는 목적은 무엇입니까? 위의 내용은'HomePanel' 소스의 끝에'ShowBookingPanel'에 대한 수입을 나누어 준 것으로 보입니다. 더 나은 도움을 받으려면 [MCVE] 또는 [단락, 자체 포함, 올바른 예] (http://www.sscce.org/)를 게시하십시오. (하나의 소스 파일, 오직 하나의 수입품 세트,'main' 메쏘드가있는'public' 클래스, 그리고 하나 이상의 기본 접근 클래스를 포함합니다.) –
미안 해요. 나는 단지 그 제목이 경계선이되기를 원했고, 원래 제목을 제거하지 않았습니다. 거기에 있었던 국경. 두 번째 제목의 경계는 내가 가고 있었던 경계 다. 파일은 세 개의 개별 파일이므로 세 파일을 결합하면 작동하는지 알 수 없습니다. –
* 두 번째 경계선은 내가 가고 있었던 경계선입니다. * 두 번째는 '안쪽'또는 '외부'입니까? * "파일은 세 개의 개별 파일이므로 세 파일을 결합하면 작동하는지 알 수 없습니다."* 그렇게됩니다. 그러나 당신이 모르는 것을 나에게 말하기보다는 스스로 해보는 것이 어떻습니까? –