谁能建议我如何将我的分成JTabbedPane两个相等的水平部分?我的窗格中有三个选项卡。我想将第二个选项卡窗格(选项卡 2)分成相等的两半?
import javax.swing.*;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSplitPane;
public class Monitor{
public static void main(String[] args){
JFrame frame = new JFrame("WELCOME");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane tab = new JTabbedPane();
frame.add(tab, BorderLayout.CENTER);
JButton button = new JButton("1");
tab.add("tab1", button);
button = new JButton("2");
tab.add("tab2", button);
button = new JButton("3");
tab.add("tab3", button);
frame.setSize(400,400);
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud) 我是新手。尝试自动调整边框大小。我用 2 个面板在框架上制作了边框。我将带边框的面板添加到第一个面板中。
我想要从所有边缘撤退的边界。在此边框面板中,我还添加了文本面板和按钮。当我扩展窗口或调整其大小时,带有边框的面板也会调整大小。但是当我使用 BorderLayout 时,边缘没有缩进。
public class App {
private JFrame frame;
private JPanel panel;
private JPanel panel_1;
private JTextField textField;
private JButton addBtn;
public static void main(String args[]) {
App app = new App();
app.initialize();
app.frame.pack();
app.frame.setVisible(true);
}
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new JPanel();
frame.getContentPane().add(panel, BorderLayout.NORTH);
panel.setLayout(new BorderLayout(0, 0));
panel_1 = new JPanel();
panel_1.setPreferredSize(new Dimension(784, 40));
panel_1.setBorder(new LineBorder(new Color(0, 0, 0)));
panel.add(panel_1, BorderLayout.CENTER);
textField = new JTextField(); …Run Code Online (Sandbox Code Playgroud) 如何填充感兴趣的网格单元中可用的垂直和水平空间?
例如:
JTextArea file1 = new JTextArea();
file1.setBorder(BorderFactory.createLineBorder(Color.black));
c = new GridBagConstraints();
c.gridx = 0;
c.gridy = 1;
c.weightx = 1.0 / ELEMENTS_IN_WIDTH;
c.weighty = 0.9;
c.insets = new Insets(PAD, PAD, PAD, PAD);
c.fill = GridBagConstraints.VERTICAL;
mainPanel.add(file1, c);
Run Code Online (Sandbox Code Playgroud)
这会垂直填充单元格,但不会水平填充单元格。
c.fill = GridBagConstraints.HORIZONTAL显然在该值后面添加VERTICAL只会覆盖该值c.fill
OR喜欢它们c.fill = GridBagConstraints.HORIZONTAL | GridBagConstraints.VERTICAL也没有效果。
我正在使用 Swing 创建桌面应用程序和设计。我在框架左侧面板和右侧面板中有两个面板,在左侧面板中我有按钮,所以我希望当我单击左侧面板中的按钮时,它应该在同一帧的右侧面板中显示结果。我是否需要创建另一个具有相同左面板的框架并为链接创建一个右面板,或者上面写的方法有一种方法不知道如何做到这一点。如下图所示。

在所附的屏幕截图中,我有一个JLabel,JTextField和一个JTabel包裹在JSchrollPane. 首先,JLabel和JTextField 漂浮在中间很远的地方。上面有很大的空间。我想关闭那个空间。其次,我希望JTable/JSchrollPane填充整个宽度。它只占宽度的一半。并且它不显示表包含的 3 行。
如果我这样做,则会panFindStudent.add(table, gbcFindStud);显示行,但它看起来仍然不漂亮。我想使用JSchrollPane, 以便在表包含许多行/列时可以滚动
我还尝试将JLabel和包装JTexField在 aJPanel中,将 包装JSchrollPane在另一个 中JPanel,然后将这两个JPanels分别添加到JFrame像这样的
findStudentFrame.add(panelWithLabelAndTextField)
findStudentFrame.add(paneLWithShcrollPane)
Run Code Online (Sandbox Code Playgroud)
但这样做,似乎只添加了最后一个面板,而不是第一个面板
我最终也认为这GridBagLayout可能不是这项任务的正确选择,我尝试混合使用GridBagLayout和FlowLayout。它给出了更好的结果,但仍然不令人满意。但我认为最好学习用 解决这个问题GridBagLayout,以便我学习正确使用它。欢迎您提出建议,让我的结果/看起来更好。我已在底部添加了整个代码,因此您可以运行它并更改它。谢谢
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import …Run Code Online (Sandbox Code Playgroud) 我有一个JFrame,其中构造函数我调用Netbeans生成的initComponents().它初始化在Netbean的设计编辑器中创建的GUI.之后我创建一个新的JLabel并调用content.add(label),其中content是一个可见的JPanel.接下来我调用validate().JLabel不会出现.怎么了?
如何添加jScrollPane到Null Layout of jPanel的netbeans?我正在使用Null Layout for jPanel,我搜索了不同的来源,但我仍然没有将jScrollPane添加到jPanel的Null布局.
如果可能,请帮助提供源代码.
感谢所有回复评论者,我也接受建议而不是谈论建议.
在这里,我似乎有人问他们需要的任何事情,但有些人不鼓励那些求助而不是帮助的人......
我使用null布局的基本需要是,我使用null布局将背景图像添加到jpanel,使用jlabel,因为我正在使用netbeans,而且我是java的初学者...
我请求所有主持人请不要删除我的编辑单词...人们可能理解我的感觉因为我是java与netbeans学习者.
我正在尝试使用Java Swing将文本区域放到对话框中.我有一个设置此JTextArea的大小的问题.文本区域的宽度始终等于窗口的整个宽度,如果我调整窗口大小,则会延伸到窗口.
private void arrangeComponents() {
JTextArea textArea = new JTextArea();
JPanel outerPanel = new JPanel();
outerPanel.setLayout(new BoxLayout(outerPanel, BoxLayout.PAGE_AXIS));
JScrollPane scrollPane = new JScrollPane(textArea);
outerPanel.add(scrollPane, BorderLayout.CENTER);
Container contentPane = getContentPane();
contentPane.add(outerPanel, BorderLayout.CENTER);
}
Run Code Online (Sandbox Code Playgroud)
我希望JTextArea水平对齐到窗口的中心,并且不会改变它的大小.
我做错了什么?
我试图在一个JTable或类似的下面放置一些文本字段和标签GridLayout.
当我在字段中键入数据时,我想将它们传递给表.我现在在面板中有文本字段和标签,但是想在上面添加一个表.
我尝试使用JPanel,JFrame,JTable.但我不能让他们一起工作.
有关Swing/AWT导入的经验,有关获得此结果的最佳方法的任何建议吗?
我的代码创建了一个基本的注册屏幕,但在JTextArea objTE1您选择文本的位置之前,它不会显示.
import java.awt.*;
import javax.swing.*;
public class SignUpScreen extends Frame
{
SignUpScreen()
{
super("No Layout Manager");
setLayout(null);
setTitle("Sign Up");
setSize(400,700);
show();
}
public static void main(String[] args)
{
Frame objFrame;
JTextArea objTE1;
JCheckBox objCheckMail;
JCheckBox objCheckEmail;
JCheckBox objCheckPhone;
Button objButtonFinish;
Button objButtonCancel;
TextField objEnterEmail;
TextField objEnterAdress;
TextField objEnterPhone;
TextField objEnterUsername;
TextField objEnterPassword;
TextField objConfirmPassword;
objFrame = new SignUpScreen();
objTE1 = new JTextArea();
objCheckMail = new JCheckBox("Mail Notifications");
objCheckEmail = new JCheckBox("Email Notifications");
objCheckPhone = new JCheckBox("Text Notifications"); …Run Code Online (Sandbox Code Playgroud) java ×10
layout-manager ×10
swing ×10
jpanel ×4
jlabel ×2
jtextarea ×2
jtabbedpane ×1
jtextfield ×1