我想在地图上显示许多不同的标签,所以我在我的面板中使用null布局,并为每个标签调用setLocation.但是,出于某种原因,标签没有显示.如果我删除pan.setLayout(null),则标签将显示在面板的顶部中心.为什么null布局不能与setPosition一起使用?
package mapa;
import java.awt.*;
import javax.swing.*;
public class Mapa extends JFrame {
private static JPanel pan;
private static JLabel lab;
public Mapa() {
}
private static void createAndShowGUI() {
Mapa frame = new Mapa();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lab = new JLabel("TEXTO");
lab.setBackground(Color.black);
lab.setForeground(Color.white);
lab.setOpaque(true);
lab.setVisible(true);
pan = new JPanel();
pan.setLayout(null);
pan.setPreferredSize(new Dimension(640,480));
pan.add(lab);
lab.setLocation(100, 100);
frame.getContentPane().add(pan, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}
Run Code Online (Sandbox Code Playgroud) 我让所有标签都正常工作,但userLabel [3]无法正确定位无论我做什么,标签"颜色:"始终显示在x坐标为0且y坐标为0的框架上在框架的一半.
JLabel[] userLabel = new JLabel[4];
for(int p = 0; p < userLabel.length; p++){
userLabel[p] = new JLabel();
userLabel[p].setSize(100,50);
frameSetUp.add(userLabel[p]);
}
userLabel[0].setText("Width of Frame:");
userLabel[1].setText("Height of Frame:");
userLabel[2].setText("# OF Balls:");
userLabel[3].setText("Color:");
userLabel[0].setLocation(10,35);
userLabel[1].setLocation(10,85);
userLabel[2].setLocation(10,135);
userLabel[3].setLocation(0,0); //no matter what coordinates I change this too, it wont reposition
Run Code Online (Sandbox Code Playgroud)
图片:[IMG] http://i41.tinypic.com/23jfo9l.png [/ IMG] http://i41.tinypic.com/23jfo9l.png
你好.
在这个网站上花了无数个小时寻找代码在屏幕上拖动一个组件,我注意到答案中出现了一个奇怪的趋势.
...因为每个人都在零布局的声音中颤抖.
所以我问,每个人都有什么问题呢?我已经编写了不超过三个月的编码,使用Swing不超过一个,并且布局已经轻而易举地使用无限的自定义.为什么这是不好的做法?
为什么文本字段没出现在我框架内的面板上?我的意思是是否需要一些额外的动作来使面板的组件可见?
我希望有人可以帮助我....
public class example1 {
public static void main(String[] args) {
JFrame tt=new TT();
}
}
class TT extends JFrame {
JTextField textField;
JPanel panel;
JButton button1;
JButton button2;
public TT() {
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setTitle("Bla Blubb");
setResizable(false);
setLayout(null);
panel=new JPanel();
panel.setBounds(5, 5, 290, 290);
add(panel);
textField=new JTextField();
textField.setBounds(5, 5, 280, 50);
panel.add(textField);
setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud) 在我的
public UI(){
I have JTextField,JButtons and labels
I have also setLayout(null);
}
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试创建一个JTable
JTable table = new JTable(data, headers);
Run Code Online (Sandbox Code Playgroud)
但是在我取出setLayout之前它不会显示
对于我有的所有按钮,文本框和标签 setBounds();
如何在setLayout为空时显示JTable?
这是我的JPanel.第一个按钮始终可见,但仅当您在其上放置一个光标时,才能看到该条纹.问题出在哪里?
PS如果可以,请使用简单的英语,因为我不会说英语
public class GamePanel extends JPanel implements KeyListener{
GamePanel(){
setLayout(null);
}
public void paint(Graphics g){
JButton buttonShip1 = new JButton();
buttonShip1.setLocation(10, 45);
buttonShip1.setSize(40, 40);
buttonShip1.setVisible(true);
add(buttonShip1);
JButton buttonShip2 = new JButton();
buttonShip2.setLocation(110, 145);
buttonShip2.setSize(440, 440);
buttonShip2.setVisible(true);
add(buttonShip2);
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的代码中进行以下调用:
...
setLayout(null);
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试通过指定x和y坐标来放置按钮和文本字段.
我运行程序(使用Eclipse或BlueJ)时的问题是我需要在面板上运行到按钮和文本字段的位置,以便分别查看按钮和文本字段.
当我找到文本字段时,它很小.只有当我开始写作时才假定我指定的大小.
有谁知道如何解决它?
如何添加jScrollPane到Null Layout of jPanel的netbeans?我正在使用Null Layout for jPanel,我搜索了不同的来源,但我仍然没有将jScrollPane添加到jPanel的Null布局.
如果可能,请帮助提供源代码.
感谢所有回复评论者,我也接受建议而不是谈论建议.
在这里,我似乎有人问他们需要的任何事情,但有些人不鼓励那些求助而不是帮助的人......
我使用null布局的基本需要是,我使用null布局将背景图像添加到jpanel,使用jlabel,因为我正在使用netbeans,而且我是java的初学者...
我请求所有主持人请不要删除我的编辑单词...人们可能理解我的感觉因为我是java与netbeans学习者.
我想在我添加一个垂直滚动条JFrame与null布局.
有可能吗?请帮忙!
我的代码创建了一个基本的注册屏幕,但在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代码的一部分,在这段代码中,我希望进度条应始终保留在标签下(标签的后面),当我启动程序时进度条位于标签下,但进度条出现/当我点击按钮并开始进度时,在标签上.那么请告诉我如何将标签始终保持在进度条上???
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JProgressBar;
import javax.swing.SwingWorker;
public class Test {
JFrame frame = new JFrame();
JLabel label = new JLabel();
JProgressBar bar = new JProgressBar(JProgressBar.VERTICAL,0,100);
JButton button = new JButton();
public static void main(String arg[]) {
new Test();
}
public Test() {
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setLayout(null);
label.setOpaque(true);
label.setBackground(Color.BLACK);
label.setBounds(100,100,100,50);
bar.setBounds(140,25,20,200);
button.setBounds(220,100,50,50);
button.addActionListener(new Progress());
frame.add(label);
frame.add(bar);
frame.add(button);
frame.setVisible(true);
}
class Progress extends SwingWorker<Void, Void> implements ActionListener {
public Void doInBackground() { …Run Code Online (Sandbox Code Playgroud) 每当我将JFrame的布局更改为null,而不是实际设置它时,JPanels永远不会被添加.我不确定为什么,我没有找到关于这个主题的足够信息.这是我的JFrame类:
public class Frame extends JFrame
{
public Frame () {
super("frame");
this.setLayout(null);
this.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getProtectionDomain().getClassLoader().getResource("icon.png")));
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setSize(1250, 550);
this.getContentPane().setBackground(Color.GRAY);
}
Run Code Online (Sandbox Code Playgroud)
}
这是我实例化JFrame的地方:
public static Frame frame;
public static void initialize()
{
frame = new Frame();
CardLayout cardLayout = new CardLayout();
PanelContainer panelContainer = new PanelContainer(cardLayout);
panelContainer.setLayout(cardLayout);
JPanel panel1 = new Panel1();
JPanel panel2 = new Panel2();
panelContainer.add(panel1, "panel1");
panelContainer.add(panel2, "panel2");
cardLayout.show(panelContainer, "panel1");
gui.add(panelContainer, null);
gui.validate();
gui.setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)
这是面板容器类:
public class PanelContainer extends JPanel
{
public PanelContainer(CardLayout cardLayout)
{
super(cardLayout);
this.setVisible(true);
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试向我的JPanel添加一个按钮并设置位置.我有
buttonOptions.setLocation(1150, 700);
但它将它添加到我的JPanel中间,大约600,20.我尝试添加
buttonOptions.setLocation(1150, 700);
将按钮添加到面板后,但也没有修复它.我还设置了动作以设置位置并且有效.
public class StartScreen extends JPanel implements ActionListener{
ImageIcon imageButtonOptions = new ImageIcon(imageButtonOptionsPath);
ImageIcon imageButtonOptionsHovered = new ImageIcon(imageButtonOptionsHoveredPath);
JButton buttonOptions = new JButton(imageButtonOptions);
public StartScreen() {
buttonOptions.setBorderPainted(false);
buttonOptions.setFocusPainted(false);
buttonOptions.setContentAreaFilled(false);
buttonOptions.addActionListener(this);
buttonOptions.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseEntered(java.awt.event.MouseEvent evt) {
buttonOptions.setIcon(imageButtonOptionsHovered);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
buttonOptions.setIcon(imageButtonOptions);
}
});
buttonOptions.setLocation(1150, 700);
add(buttonOptions);
}
Run Code Online (Sandbox Code Playgroud)