1
当我编译并运行我的程序时,我希望能够重新调整它的大小并保持具有相同比例因子的组件。这意味着当框架展开时,组件也会展开,从而保持原始尺寸和间距尺度。Swing组件的自动调整大小
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
public class ResizeTst
{
JFrame myMainWindow = new JFrame("This is my title");
JPanel firstPanel = new JPanel();
//Components
JButton CompAth = new JButton();
JButton ViewAth = new JButton();
JButton UpdateRD = new JButton();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String []fontFamilies = ge.getAvailableFontFamilyNames();
Font FontT5 = new Font("SansSerif", Font.BOLD, 50);
///////////
public void runGUI()
{
myMainWindow.setBounds(10, 10, 1296, 756);
myMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myMainWindow.setLayout(new GridLayout(1,1));
createFirstPanel();
myMainWindow.getContentPane().add(firstPanel);
myMainWindow.setVisible(true);
}
public void createFirstPanel()
{
firstPanel.setLayout(null);
CompAth.setLocation(500,250);
CompAth.setSize(320,300);
CompAth.setText("<html><CENTER>Compare<br>Athletes</CENTER></html>");
CompAth.setFont(FontT5);
firstPanel.add(CompAth);
ViewAth.setLocation(100,250);
ViewAth.setSize(320,300);
ViewAth.setText("<html><CENTER>View<br>Athletes</CENTER></html>");
ViewAth.setFont(FontT5);
firstPanel.add(ViewAth);
UpdateRD.setLocation(900,250);
UpdateRD.setSize(320,300);
UpdateRD.setText("<html><CENTER>Update<br>Running<br>Details</CENTER></html>");
UpdateRD.setFont(FontT5);
firstPanel.add(UpdateRD);
}
public static void main(String[] args)
{
ResizeTst rt = new ResizeTst();
rt.runGUI();
}
}
所以,如果我实现了这个代码,它可以让我在自动全尺寸的任何系统上运行,而不比例因子改变了原先的原先的组件的大小。允许我的程序在全屏幕的大屏幕或小屏幕上看起来很糟糕时运行。
import javax.swing.*;
import java.awt.*;
import java.io.*;
import java.lang.*;
public class ResizeTst
{
JFrame myMainWindow = new JFrame("This is my title");
JPanel firstPanel = new JPanel();
//Components
JButton CompAth = new JButton();
JButton ViewAth = new JButton();
JButton UpdateRD = new JButton();
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String []fontFamilies = ge.getAvailableFontFamilyNames();
Font FontT5 = new Font("SansSerif", Font.BOLD, 50);
///////////
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public void runGUI()
{
myMainWindow.setExtendedState(JFrame.MAXIMIZED_BOTH);
myMainWindow.setSize(screenSize);
myMainWindow.setVisible(true);
myMainWindow.setResizable(true);
myMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myMainWindow.setLayout(new GridLayout(1,1));
createFirstPanel();
myMainWindow.getContentPane().add(firstPanel);
myMainWindow.setVisible(true);
}
有人告诉我,我应该这样可以让我做这件事的面板上使用的布局,但我不知道它的布局使用以及如何将其正确运用这一计划的。任何解决方案或建议如何做到这一点将不胜感激。
1)请学习常见的Java命名(命名约定 - 例如'EachWordUpperCaseClass','firstWordLowerCaseMethod()','firstWordLowerCaseAttribute'除非它是一个'UPPER_CASE_CONSTANT')和一致地使用它。 2)以最小尺寸提供ASCII艺术或简单的GUI布局图,并且如果可调整大小,则具有更大的宽度和高度。 3)我们应该关注哪两个同名的类? 4)'new Font(“SansSerif”,Font.BOLD,50);'用于编译时检查,使用'new Font(Font.SANS_SERIF,Font.BOLD,50);' – 2015-03-08 18:00:11
1)我将在Java中使用它将来的命名。 2)我有,但它不会让我添加图像,直到我有10个声望。 3)它们是相同的类,但第二个具有新的全局变量,并且编辑了runGUI()方法以显示代码,该代码是用于自动进入全屏的新代码。 4)好的 – Dan 2015-03-08 18:08:49
1)我平时对此的回复是*“不用担心,我可能**将来会看到这个问题**”*现在做的时间是***!*** 2)您不能嵌入图像,但将其上传到图像共享网站并链接到它们。您始终可以创建ASCII艺术。 3)我不明白为什么包括在内,我用了第一堂课。 – 2015-03-08 18:15:21