编辑:增加导入和主方法
编辑2:原来我认为x和y值是像素,这是它不能工作的原因
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class HomeScreenUI {
public void addobjects(Component componente, Container yourcontainer, GridBagLayout layout, GridBagConstraints gbc, int gridx, int gridy, int gridwidth, int gridheight){
gbc.gridx = gridx;
gbc.gridy = gridy;
gbc.gridwidth = gridwidth;
gbc.gridheight = gridheight;
layout.setConstraints(componente, gbc);
yourcontainer.add(componente);
}
HomeScreenUI(){
//frame
JFrame frame = new JFrame("Opisa");
//panels, one before button click and one after
JPanel panel = new JPanel();
JPanel panelAfterButtonClick = new JPanel();
GridBagLayout ourlayout;
ourlayout = new GridBagLayout();
panel.setLayout(ourlayout);
panelAfterButtonClick.setLayout(ourlayout);
GridBagConstraints gbc = new GridBagConstraints();
//jlabel that isnt displaying + dimensions
JLabel label = new JLabel("Opisa");
label.setFont(new Font("Helvetica", Font.PLAIN, 70));
//second jlabel that isn't displaying
JLabel label2 = new JLabel("Home");
label2.setFont(new Font("Helvetica", Font.PLAIN, 70));
//adding the labels to the panels
panel.add(label);
panelAfterButtonClick.add(label2);
//button that is displaying both before and after
JButton button = new JButton("Click Me..");
JButton buttonAfterClick = new JButton("Clicked Me..");
//adding the buttons to the jpanel
this.addobjects(label, panel, ourlayout, gbc, 0,0, 3, 1);
this.addobjects(button, panel, ourlayout, gbc, 700, 100, 2, 0);
this.addobjects(label2, panelAfterButtonClick, ourlayout, gbc, 200, 200, 1, 1);
this.addobjects(buttonAfterClick, panelAfterButtonClick, ourlayout, gbc, 700, 10, 2, 0);
//function that changes the panel after the button is clicked
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
frame.setContentPane(panelAfterButtonClick);
frame.invalidate();
frame.validate();
}
});
//adding the panel to the frame and setting the size
frame.add(panel);
frame.setSize(720,1280);
frame.setVisible(true);
}
}
public static void main (String args[]) {
HomeScreenUI hs = new HomeScreenUI();
}
看来您使用的GridBagLayout与设计时完全不同。注意,您有一个GridBagLayout实例,但希望将其用于两个面板。每个面板都需要有自己的LayoutManager实例。
然后看看你有多少GridBagConstraints。要添加的每个组件都需要它自己的实例来正确管理。
然后,您会向GridBagConstraints传递一些奇怪的值。我建议您花点时间,看看如何使用GridBagLayout。
IOS_WEBVIEW
嗨,我是java初学者,正在使用GridBagLayout制作小型GUI。请参阅附带的代码和输出。我想要的是按照gridx和gridy中分配的位置将JButtons放置在左上角。但它把组件放在中心,而不是像预期的左上角,如果我使用插图,gridx/Gridy所有的工作,但不是从适当的坐标,所以请看附上的代码和图像,并指导我关于它 输出:想要左上角的按钮,请指点
我正在尝试创建包含某些值的表的Excel文件。问题是,无论我做什么,Java都会创建损坏的Excel文件(.xlsx、.xlsm)。 更改现有表的列文件的名称已损坏,如果不进行修复,则无法打开它。名称已更改,但由于某些原因,必须修复该文件。创建新表或为现有表创建新列似乎会损坏文件,但我不知道为什么。 这是我的全部代码: 附言:我是Java初学者——我在Java上有三年的Rest时间。我为我的语言道
在我的应用程序(,出现了一个向上箭头,表示,但我无法处理它来执行任何操作,甚至无法显示toast。我尝试了这个方法,并在选项ItemSelected()中处理了开关(item.getItemId()),但这两种解决方案都不适合我。我错过了一些东西,但不知道是什么。 这是我的代码: ... 我的整个选项项已选定: 我不知道其他代码是否重要: 在我的清单中,我没有父母活动。 我找到了这个答案,它似乎是
试图将我的旁边的表单与对齐,我正在努力将组件放到面板顶部。我需要价格标签和字段就在商品标签和字段下面,但我无法让它从面板底部移动。 如果我使用,这会将项目标签和字段移到顶部,但随后我就失去了用锚定它的能力。除非有办法两者兼得?请看我试图展示我想要放置表格的区域的图片。谢谢你的帮助。