JAVA真的适合做图形界面吗?我今天连个简单的布局JAVA都似乎都不能实现,请问我这是哪里出了问题?

BugsMakeMeHappy BugsMakeMeHappy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想设计一个400*600的计算器界面,文本框占据400*200,按钮区域占400*400;于是我是用GridBagLayout布局,文本框使用一个名为TextField的panel,占1行1列。按钮区域是名为ButtonArea的panel,占2行1列。但是显示出来的效果两块区域的大小却都是一行一列,我的代码里面明明写得很清楚两个panel占用的大小是不一样的,为什么还会这样呢?问题出在哪里?
还有一个问题我想请问一下,我想把TextField区域的文本显示调整为右下角(现在只是水平居中,我想要的靠下右对齐),请问有办法做到吗?

package Calculator;  

import javax.swing.*;

import java.awt.*;

public class Calculator{


JFrame calculator;//整体框架
JPanel ButtonArea;//按扭区域
JPanel TextArea;//文字显示区域
JButton button[];//按钮数组
JTextField textField;//文本框
GridBagLayout gridBagLayout;//GridBagLayout布局对象
GridBagConstraints gridBagConstraints;//GridBagLayout条件管理对象
String chars[]={"CE","C","DEL","/","7","8","9","*","4",
"5","6","-","1","2","3","+","0",".","=","SCI"};

Calculator(){
calculator = new JFrame("计算器");//整体框架
ButtonArea = new JPanel();//按扭区域
TextArea = new JPanel();//文字显示区域
button = new JButton[20];
textField=new JTextField("0");
for(int i=0;i<chars.length;i++){
button[i]=new JButton(chars[i]);
}
gridBagLayout=new GridBagLayout();
gridBagConstraints=new GridBagConstraints();
gridBagConstraints.fill=GridBagConstraints.BOTH;
gridBagConstraints.weightx=0.1;
gridBagConstraints.weighty=0.1;
}

void Run(){

calculator.setSize(400, 600);
calculator.setLayout(gridBagLayout);

//下面的用来对GridBayLayout进行布局管理

ButtonArea.setLayout(new GridLayout(5,4));
for(int i=0;i<chars.length;i++)
ButtonArea.add(button[i]);

TextArea.setLayout(gridBagLayout);
gridBagConstraints.gridx=0;
gridBagConstraints.gridy=0;
gridBagConstraints.gridwidth=1;
gridBagConstraints.gridheight=1;
gridBagLayout.setConstraints(textField,gridBagConstraints);

textField.setHorizontalAlignment(SwingConstants.RIGHT);
textField.setFont(new Font("微软雅黑",Font.BOLD,60));
TextArea.add(textField);

gridBagConstraints.gridx=0;
gridBagConstraints.gridy=0;
gridBagConstraints.gridwidth=1;
gridBagConstraints.gridheight=1;
gridBagLayout.setConstraints(TextArea,gridBagConstraints);
calculator.add(TextArea);

gridBagConstraints.gridx=0;
gridBagConstraints.gridy=1;
gridBagConstraints.gridwidth=1;
gridBagConstraints.gridheight=2;

gridBagLayout.setConstraints(ButtonArea,gridBagConstraints);
calculator.add(ButtonArea);

calculator.setVisible(true);
}
public static void main(String args[]) {
new Calculator().Run();
//Calculator
}
}


...全文

相关推荐

Java图形界面实现汉诺塔游戏

汉诺塔问题,起源于印度一个古老的传说,是计算机科学和数学领域中著名的递归问题。根据传统,僧侣们必须将64个金盘从源塔移动到目标塔,且在移动过程中必须遵守规则:每次只能移动一个盘子,且任何时候大盘子不能放在小盘子上面。汉诺塔问题的解决方案不仅揭示了递归思维的魅力,还展示了递归算法在解决复杂问题中的强大能力。汉诺塔问题的解决之道在于将一个大问题分解为若干个小问题,小问题再依次分解,形成递归。

小虾汉斯

Java图形界面下的JSON格式化实现

标准的JSON格式化输出有时不能满足特定的格式需求,这时可以使用注解来自定义格式化过程。例如,如果想要改变字段名的输出格式,可以在字段上使用注解:// 省略getter和setter方法重新运行格式化代码,输出的JSON字符串中的字段名会按照注解指定的方式改变:// 输出:{"id":1,"user_name":"Example","age":30}通过以上的示例,可以看出JSON与Java对象之间的互转在实际开发中十分常见,且操作起来并不复杂。

Kay Lam

Java SWT图形界面开发实战指南

Java SWT(Standard Widget Toolkit)是Eclipse基金会推出的一套本地化图形界面开发库,与传统的AWT和Swing不同,SWT通过直接调用操作系统原生控件(如Windows的Win32 API、Linux的GTK等),从而实现更接近操作系统的外观和更高的性能表现。SWT的基础控件是构建图形界面的最小单元,包括按钮(Button)、标签(Label)、文本框(Text)、下拉框(Combo)和列表框(List)等。它们虽然功能简单,但却是构建复杂界面的基础。

昊叔Crescdim

最新2026黑龙江省村界村级行政区划矢量shp数据下载

最新2026黑龙江省村界村级行政区划矢量shp数据,几千个面,属性包含村、社区乡、街道镇、市多级属性,非常准确

gis收藏家

政府科技管理者在推动科技成果转化过程中,如何精准匹配供需双方并提高对接效率?.docx

政府科技管理者在推动科技成果转化过程中,如何精准匹配供需双方并提高对接效率?

BIZKEEN
评论 35
收藏 已收藏
分享
返回顶部
BugsMakeMeHappy
Java SE 62,620 成员 307,251 内容