- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目标:当用户提供有效的登录名和密码时 ->(JFrame - 销毁登录内容)并将自己的内容更改为游戏内容..(功能GRA)
问题:
当我尝试使用时:
main.contentpane.removeAll():main.removeAll():
布局
以及其他(命令)
程序未加载新内容。
这是我的代码:
class GUI implements ActionListener {
public static JPanel image_cont;
// definicja klasy wątka
runner pierwiast = new runner();
public static JFrame main = new JFrame();
public static JLabel ilosc_pkt = new JLabel("0");
JTextField pole, login_p, haslo_p;
dostep_z_o logowanie = new dostep_z_o("baza_danych.txt");
public GUI() {
// wymiary okna x, y (zasada oznakowania, wykresy matematyczne)
main.setSize(900, 400);
// porządkowanie pozycji elementów
//setLayout(new FlowLayout());
// tytuł okna
main.setTitle("Gra ułamki - logowanie do gry");
main.setResizable(false);
main.setVisible(true);
main.setLayout(null);
JLabel login = new JLabel("Login : ");
JLabel haslo = new JLabel("Hasło : ");
login_p = new JTextField("",10);
haslo_p = new JTextField("",10);
JButton przycisk = new JButton("Zaloguj!");
// nadanie akcji
przycisk.setActionCommand("Login");
// dodanie do Action listenera
przycisk.addActionListener(this);
// marginery - zakres, pozycji dla obiektu
Insets insets = main.getInsets();
main.add(login);
main.add(login_p);
main.add(haslo);
main.add(haslo_p);
main.add(przycisk);
// preferowany rozmiar przez jave dla elementu
Dimension size = przycisk.getPreferredSize();
System.out.println(size);
login.setBounds(296 + insets.left, 4 + insets.top, 41, 16);
login_p.setBounds(342 + insets.left, 2 + insets.top, 114, 20);
haslo.setBounds(296 + insets.left, 32 + insets.top, 41, 16);
haslo_p.setBounds(342 + insets.left, 30 + insets.top, 114, 20);
przycisk.setBounds(467 + insets.left, 2 + insets.top, 117, 48);
// (900 / 2) - ((41 + 5 + 114 + 11 + 117) / 2 )
// 450 - 144 = 296
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void gra()
{
main.removeAll();
main.getContentPane().removeAll();
main.setTitle("Gra ułamki - złap pierwiastki chemiczne. Quickly! -- Aktualna ilość punktów : " + runner.punkty);
JPanel content = new JPanel();
content.setBackground(Color.green);
//content.setLayout(new BorderLayout(200, 200));
content.setPreferredSize(new Dimension(900, 75));
content.setLayout(null);
//content.setSize(0, 0);
// pole tekstowe
pole = new JTextField("",2);
// definiowanie przycisku
JButton przycisk = new JButton("Zatwierdź wprowadzenie!");
// nadanie komendy wysyłanej do action listenera
przycisk.setActionCommand("Spr");
// dodanie do Action listenera
przycisk.addActionListener(this);
//opis punktów
JLabel opis_p = new JLabel("Ilość punktów : ");
JLabel n_pierw = new JLabel("Nazwa pierwiastka : ");
//ilosc_pkt
// marginery - zakres, pozycji dla obiektu
Insets insets = content.getInsets();
content.add(n_pierw);
content.add(pole);
content.add(przycisk);
content.add(opis_p);
content.add(ilosc_pkt);
// setBounds - ustawia pozycje, Od lewej krawedzi, od gornej krawedzi, dlugosc_obiektu, _ jego wysokosc
// przy ustalaniu pozyucji trzeba wziasc pod uwage margines
n_pierw.setBounds(284 + insets.left, 12 + insets.top, 117, 16);
pole.setBounds(284 + 115 + insets.left, 10 + insets.top, 30, 20);
przycisk.setBounds(284 + 153 + insets.left, 7 + insets.top, 179, 26);
// Do prawego boku
opis_p.setBounds(750 + insets.left, 12 + insets.top, 88, 16);
ilosc_pkt.setBounds(840 + insets.left, 9 + insets.top, 88, 22);
// ustawienia Fonta
Font font = new Font ("Calibri", Font.BOLD, 20);
ilosc_pkt.setFont(font);
main.getContentPane().setLayout(new FlowLayout());
main.getContentPane().add(pierwiast);
main.getContentPane().add(content);
pierwiast.kontrola_gui(this);
pierwiast.init();
main.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("Spr"))
{
// pobranie tekstu z TextFielda
String w_pierw = pole.getText();
// Sprawdza czy String nie jest pusty
if(!("").equals(w_pierw) && pierwiast.x1 != -1)
{
// sprawdza wprowadzony pierwiastek czy jest taki sam jak wpisalismy
if (!w_pierw.equals(pierwiast.tab_pierw[pierwiast.x1].p_ch_n))
{
// Zmniejszenie ilości punktów
pierwiast.punkty -=1;
ilosc_pkt.setText(Integer.toString(pierwiast.punkty));
JOptionPane.showMessageDialog(null, "Źle! Módl się byś nie zostął/a potraktowany/a chlorem!");
main.setTitle("Gra ułamki - złap pierwiastki chemiczne. Quickly! - " + pierwiast.tab_pierw[runner.x1].p_ch_n + " - Źle (-1 punkt) -- Aktualna ilość punktów : " + pierwiast.punkty);
}
else
{
JOptionPane.showMessageDialog(null, "Poprawnie! Pani z chemii się cieszy!");
// Zwiększenie ilości punktów
pierwiast.punkty +=1;
ilosc_pkt.setText(Integer.toString(pierwiast.punkty));
main.setTitle("Gra ułamki - złap pierwiastki chemiczne. Quickly! - " + pierwiast.tab_pierw[runner.x1].p_ch_n + " - Dobrze (+1 punkt) -- Aktualna ilość punktów : " + pierwiast.punkty);
// ustawienie statusu do znikniecia
pierwiast.tab_pierw[pierwiast.x1].status_p = 2;
// usuwanie poprzedniego wyboru pierwiastka (unikniecie ponownego odkrycia)
pierwiast.x1 = -1;
//czyszczenie pola - do wpisywania
pole.setText("");
}
}
else
{
JOptionPane.showMessageDialog(null, "Nie wpisano nazwy pierwiastka lub nie kliknięto");
}
}
else if (e.getActionCommand().equals("Login"))
{
String login = login_p.getText();
String haslo = haslo_p.getText();
if(!"".equals(login) && !"".equals(haslo))
{
logowanie.logowanie(login, haslo);
if (logowanie.login)
{
this.gra();
}
}
else
{
JOptionPane.showMessageDialog(null, "Nie wpisano loginu i hasła");
}
}
}
}
我哪里错了?怎么了?
--- [编辑] ---
解决(对于其他寻求者):
@Dave 提示
//为每个组件添加重新验证(Gra函数)
main.getContentPane().add(pierwiast);
main.getContentPane().add(content);
pierwiast.revalidate();
content.revalidate();
并且(在 start gra 函数中)
//main.getContentPane().removeAll(); <- Delete this
//main.getContentPane().validate(); <- Delete this
main.setTitle("Gra ułamki - złap pierwiastki chemiczne. Quickly! -- Aktualna ilość punktów : " + runner.punkty);
还有加载之前(函数gra)(public void actionPerformed)在
if (logowanie.login)
{
main.getContentPane().removeAll(); //add this
main.repaint(); //add this
main.validate(); //add this
this.gra();
}
最佳答案
完成新内容的设置后,您需要在 main
上调用 revalidate()
。
关于Java - 更新/更改 JFrame 的内容 - (删除旧内容)并插入新内容(面板 itd。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8716424/
我有一个 Bootstrap 面板,里面有另一个面板。两者在面板标题中都有一个字形图标。默认情况下,面板是折叠的。当面板折叠时,将设置 glyphicon-unchecked。当我点击这个字形图标时,
使用 Grafana 时,我们会在某些电视上使用它。有谁知道制作它的方法,如果有人添加面板,更改布局等,它不仅会自动刷新数据,还会自动刷新实际仪表板? 我们真的厌倦了不断要求具有远程访问权限的人登录并
基本上,我试图让屏幕底部有 3 个按钮,然后在屏幕中间有一个包含文字的标签。但是,我似乎无法同时在 GUI 中同时拥有按钮和标签。我是一名初学者,对布局了解不多(即使我已经阅读过它们),因此任何帮助/
作为学校的类(class)作业,我们必须提出一个自定义项目,我选择了一个原本打算在 ActionScript 上编写的游戏创意,但决定在 Java 上插入它。最初进展顺利,游戏代码正常运行, Spri
我正在尝试使用 Java Graphics 制作一个生命模拟游戏,但是当运行我的代码时,屏幕的左侧三分之一是灰色的。我希望整个屏幕是白色的,黑色方 block 代表生命方 block 。我对所有 ja
下面是动态驱动的一个不错的“下拉面板”。 http://www.dynamicdrive.com/dynamicindex17/dddropdownpanel.htm 如您所见,它是一个面板,在打开时
所以我有这个函数 onDisplayError ,如果请求失败,每次都会调用它。这意味着如果用户按下保存按钮并且 3 个请求失败,我当前会收到 3 个弹出消息。我的目标是此函数检查我的弹出窗口是否已打
我正在尝试为我的一个类(class)制作一款游戏,但在实现一些我想做的事情时遇到了麻烦。本质上,我希望在同一个图形用户界面窗口中包含多个不同的部分。 据我了解,我会使用 JPanel 来创建这些不同的
我目前正在测试这种类型的面板 jquery: http://codyhouse.co/gem/css-slide-in-panel/ 但是当我想检测从顶部滚动以显示一个 div 时:没办法:( 一种检
我可能正在搜索错误的问题,但我找不到这个问题的答案。 我有一个 AutoScroll 设置为 true 的面板。控件动态添加到面板。我需要在滚动条可见时触发一个事件,但我找不到这样的事件。 如有任何建
我有一堆 Bootstrap 面板,其中一些是相互关联的。有点像 Panel A -> Panel B -> Panel C 当用户单击面板 B 时,将显示面板 C,当单击面板 C 时,将显示面板 D
我正在尝试开发一种带有指标的下拉列表,并相应地针对应该出现在仪表板上的选定指标特定面板。反之亦然,如果未选择指标,则面板应隐藏。 我找到了链接 http://search-devops.com/m/k
我有一个窗口,窗口里面有面板。我动态地向面板添加组件。这些组件采用“hbox”布局,以便它们水平排列。单击按钮后,我将在“hbox”布局中再向面板添加一行类似组件。这里的问题是我想在第一行下面添加第二
我使用 jQuery Accordion 将表单拆分为多个面板,并使用 jQuery 验证来检查所需字段。只要验证字段位于打开的面板中,它就可以很好地显示已验证字段中的错误。 举个例子。假设我有三个
我正在尝试检查我的面板是打开还是关闭。 我尝试过这样的: $(document).on('open', '.ui-panel', function(){ console.log('open');
我有一个面板,我想将其 float 在所有窗口之上并出现在所有空间中。这可以通过 轻松完成 [self.panel setLevel:kCGUtilityWindowLevel]; [self.win
我想在格子中的单个面板上叠加多个组,并且想要独立的回归线。 获得多个面板相当容易,每个面板都有一条使用条件因子的回归线: xyplot( Petal.Width ~ Petal.Length |
Delphi 有滑动(动画)面板组件吗? 例如可以在 Raize Components 中找到它(带有“热点”或隐藏/显示按钮的左侧面板)。 我不需要一个可调整大小的面板,而是一个可以从左向右水平平滑
我有一个 Bootstrap Accordion : 我想禁用非事件面板中的所有输入控件。仅验证事件面板。 我有一个检测事件选项卡的功能: $(".panel").on("show.bs.collap
我正在尝试将组件放入不同尺寸的面板中。但是,我意识到 GridLayout 将大小相同的部分分开。如何实现如下图所示 enter image description here import java.
我是一名优秀的程序员,十分优秀!