- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 JDialog
框中有一个 JTabbedPane
,它在 Pane 中包含的所有 JPanels
上使用 GridBagLayout
。在显示的第一个面板上有一个 JTextArea
(descTxt
),可以在其中输入电影说明。当您在 JTextArea 中输入大量文本时
看起来一切都很好,直到您单击面板上不是组件的任何位置(空白的灰色空间),然后所有文本字段和文本 Pane 都会缩小到看起来大小为 0 的大小。
以下是一些要粘贴和测试的示例文本:
During a manned mission to Mars, Astronaut Mark Watney is presumed dead after a fierce storm and left behind by his crew. But Watney has survived and finds himself stranded and alone on the hostile planet. With only meager supplies, he must draw upon his ingenuity, wit and spirit to subsist and find a way to signal to Earth that he is alive.
这是我的代码的可运行示例:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.regex.Pattern;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
/**
*
* @author Chris
*/
public class AdminWindow extends JDialog implements ActionListener {
private JPanel adminPanel1, adminPanel2, adminPanel3;
private JTabbedPane tabPane;
private GridBagConstraints g1, g2, g3;
private JLabel idLbl, showLbl, descLbl, ageLbl, imgLbl, timeLbl, screenLbl,
stanLbl, vipLbl, idLbl1, showLbl1, descLbl1, ageLbl1, imgLbl1, imgName;
private JTextField idTxt, showTxt, imgTxt, timeTxt, stanTxt, vipTxt,
idTxt1, showTxt1, imgTxt1;
private JTextArea descTxt, descTxt1;
private JComboBox ageCb, ageCb1, screenCb, timeCb, showingCb;
private JScrollPane descTxtPane, descTxtPane1;
private ArrayList<String> screenList, timeList, showingList;
private DefaultComboBoxModel screenModel, timeModel, showingModel;
private JButton submit, clear, seatSubmit, seatClear, addBtn, subBtn,
submit1, clear1, imgBtn;
private double stanPrice, vipPrice;
private String stanPriceString, vipPriceString, priceExpression, imgString;
private Pattern p;
private File dest, chosenFile;
public AdminWindow() {
//frame properties
super(new JFrame("Admin Panel"));
setTitle("Admin Panel");
//setSize(Dimensions.getScreenWidth() - 100, Dimensions.getScreenHeight() - 100);
setAlwaysOnTop(true);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
//regular expression validations
priceExpression = "[0-9]{1,2}[.]{1}[0-9]{2}";
p = Pattern.compile(priceExpression);
//panel dec
tabPane = new JTabbedPane();
adminPanel1 = new JPanel();
adminPanel2 = new JPanel();
adminPanel3 = new JPanel();
g1 = new GridBagConstraints();
g2 = new GridBagConstraints();
g3 = new GridBagConstraints();
//label dec
idLbl = new JLabel("Film ID");
showLbl = new JLabel("Film Name");
descLbl = new JLabel("Film Description");
ageLbl = new JLabel("Age Rating");
imgLbl = new JLabel("Image");
idLbl1 = new JLabel("Film ID");
showLbl1 = new JLabel("Film Name");
descLbl1 = new JLabel("Film Description");
ageLbl1 = new JLabel("Age Rating");
imgLbl1 = new JLabel("Image");
timeLbl = new JLabel("Showing Times");
screenLbl = new JLabel("Screen Number");
stanLbl = new JLabel("Standard Ticket Cost (£)");
vipLbl = new JLabel("VIP Ticket Cost (£)");
imgName = new JLabel("filename.jpg");
//label properties
imgName.setPreferredSize(new Dimension(100, 20));
//txttfield dec
idTxt = new JTextField(4);
showTxt = new JTextField(30);
descTxt = new JTextArea(4, 30);
descTxtPane = new JScrollPane(descTxt, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
imgTxt = new JTextField();
idTxt1 = new JTextField(4);
showTxt1 = new JTextField(30);
descTxt1 = new JTextArea(4, 30);
descTxtPane1 = new JScrollPane(descTxt1, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
imgTxt1 = new JTextField();
timeTxt = new JTextField(4);
stanTxt = new JTextField(4);
vipTxt = new JTextField(4);
//textfield properties
idTxt1.setEditable(false);
descTxt.setWrapStyleWord(true);
descTxt.setLineWrap(true);
//drop-down dec
ageCb = new JComboBox();
ageCb1 = new JComboBox();
screenCb = new JComboBox();
timeCb = new JComboBox();
showingCb = new JComboBox();
//dropdown properties
timeCb.setPreferredSize(new Dimension(60, 23));
//buttons
submit = new JButton("Submit");
clear = new JButton("Clear");
submit1 = new JButton("Submit");
clear1 = new JButton("Clear");
seatSubmit = new JButton("Submit");
seatClear = new JButton("Show Current");
addBtn = new JButton("+");
subBtn = new JButton("-");
imgBtn = new JButton("Browse..");
//button properties
addBtn.setFocusPainted(false);
subBtn.setFocusPainted(false);
addBtn.setMargin(new Insets(0, 5, 0, 5));
subBtn.setMargin(new Insets(0, 5, 0, 5));
//listeners
submit.addActionListener(this);
clear.addActionListener(this);
seatSubmit.addActionListener(this);
seatClear.addActionListener(this);
addBtn.addActionListener(this);
subBtn.addActionListener(this);
imgBtn.addActionListener(this);
//fill price text fields with existing prices
defaultForm();
//add items to jcombobox
ageCb.addItem("U");
ageCb.addItem("12A");
ageCb.addItem("15");
ageCb.addItem("18");
ageCb1.addItem("U");
ageCb1.addItem("12A");
ageCb1.addItem("15");
ageCb1.addItem("18");
//panel properties
adminPanel1.setLayout(new GridBagLayout());
adminPanel2.setLayout(new GridBagLayout());
adminPanel3.setLayout(new GridBagLayout());
adminPanel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "New Showing"));
adminPanel2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "Seat Prices"));
adminPanel3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "Edit Showing"));
//ading panels to tabbed pane
tabPane.addTab("Add Showings", null, adminPanel1, "Add new showings & showing times");
tabPane.addTab("Seat Prices", null, adminPanel2, "Change seat prices");
tabPane.addTab("Edit Showing", null, adminPanel3, "Edit existing showing");
//-----adding components to pane--------------------------------------!
g1.gridx = 0;
g1.gridy = 0;
g1.insets = new Insets(10, 0, 0, 10);
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(idLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
adminPanel1.add(idTxt, g1);
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(showLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 4;
adminPanel1.add(showTxt, g1);
g1.gridwidth = 1;
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(descLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 4;
adminPanel1.add(descTxtPane, g1);
g1.gridwidth = 1;
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(ageLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
adminPanel1.add(ageCb, g1);
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(imgLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 2;
adminPanel1.add(imgBtn, g1);
g1.gridx = 3;
adminPanel1.add(imgName, g1);
g1.gridwidth = 1;
g1.gridy++;
g1.gridx = 0;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(screenLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
adminPanel1.add(screenCb, g1);
g1.gridx--;
g1.gridy++;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(timeLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
adminPanel1.add(timeTxt, g1);
g1.gridx++;
adminPanel1.add(addBtn, g1);
g1.gridx++;
adminPanel1.add(timeCb, g1);
g1.gridx++;
adminPanel1.add(subBtn, g1);
//buttons
g1.gridy++;
g1.gridx = 0;
g1.insets = new Insets(10, 0, 10, 10); //top, right, bottom, left
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(clear, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 4;
adminPanel1.add(submit, g1);
g1.gridwidth = 1;
//------adding components to panel2-----------------------------------!
//left
g2.gridx = 0;
g2.gridy = 0;
g2.insets = new Insets(10, 10, 0, 10);
g2.anchor = GridBagConstraints.LINE_END;
adminPanel2.add(stanLbl, g2);
g2.gridy++;
adminPanel2.add(vipLbl, g2);
g2.gridy++;
adminPanel2.add(seatClear, g2);
//right
g2.gridy = 0;
g2.gridx++;
g2.anchor = GridBagConstraints.LINE_START;
adminPanel2.add(stanTxt, g2);
g2.gridy++;
adminPanel2.add(vipTxt, g2);
g2.gridy++;
adminPanel2.add(seatSubmit, g2);
//-----adminpanel3-----------------------------------------------------
//adding components to panel1
g3.gridx = 1;
g3.gridy = 0;
g3.insets = new Insets(10, 0, 0, 10);
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 4;
adminPanel3.add(showingCb, g3);
g3.gridwidth = 1;
g3.gridx--;
g3.gridy++;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(idLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
adminPanel3.add(idTxt1, g3);
g3.gridy++;
g3.gridx--;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(showLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 5;
adminPanel3.add(showTxt1, g3);
g3.gridwidth = 1;
g3.gridy++;
g3.gridx--;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(descLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 4;
adminPanel3.add(descTxtPane1, g3);
g3.gridwidth = 1;
g3.gridy++;
g3.gridx--;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(ageLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
adminPanel3.add(ageCb1, g3);
g3.gridy++;
g3.gridx--;
//buttons
g3.gridy++;
g3.gridx = 0;
g3.insets = new Insets(10, 0, 10, 10); //top, right, bottom, left
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(clear1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 4;
adminPanel3.add(submit1, g3);
g3.gridwidth = 1;
//adding tabbed pane to frame
this.add(tabPane);
this.pack();
//visibility
setVisible(true);
tabPane.setVisible(true);
//actionlisteners
}
public static void main(String[] args) {
AdminWindow test = new AdminWindow();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == imgBtn) {
//--JFileChooser, ugly but better to use--
String userDir = System.getProperty("user.home");
JFileChooser chooser = new JFileChooser(userDir+"/Desktop");
int choice = chooser.showDialog(this, "Choose");
if (choice != JFileChooser.APPROVE_OPTION) {
return;
}
FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "gif", "jpeg");
chooser.setAcceptAllFileFilterUsed(false);
chooser.addChoosableFileFilter(filter);
chosenFile = chooser.getSelectedFile();
imgName.setText(chosenFile.getName());
dest = new File(System.getProperty("user.dir") + "/src/iegroup/resources", chosenFile.getName());
imgString = "resources/" + chosenFile.getName();
System.out.println(dest.toPath());
}
if (e.getSource() == submit) {
if (e.getSource() == clear ){
}
if (e.getSource() == seatSubmit) {
}
}
if (e.getSource() == seatClear) {
defaultForm();
}
if (e.getSource() == addBtn) {
timeModel.addElement(timeTxt.getText());
timeList.add(timeTxt.getText());
}
if (e.getSource() == subBtn) {
timeModel.removeElement(timeCb.getSelectedItem());
timeList.remove(timeCb.getSelectedItem());
}
}
private void defaultForm() {
stanPriceString = String.format("%.2f", stanPrice);
vipPriceString = String.format("%.2f", vipPrice);
stanTxt.setText(stanPriceString);
vipTxt.setText(vipPriceString);
}
public void showValidationPrompt(String message) {
JFrame validFrame = new JFrame();
validFrame.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(validFrame, message, "Invalid input", JOptionPane.CLOSED_OPTION);
}
public void showSuccessPrompt(String message) {
JFrame errorFrame = new JFrame();
errorFrame.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(errorFrame, message, "Success", JOptionPane.CLOSED_OPTION);
}
}
请帮忙。这非常令人困惑,我似乎无法在任何地方找到解决方案。
最佳答案
所以,问题似乎是 setResizing(false)
和 ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED
的组合(好吧,我只是讨厌不可调整大小的窗口)。
发生的情况是,当您填充JTextArea
时,它会将JScrollPane
“添加”到已经“打包”的窗口中,因此组件的大小发生了变化,然后当容器被重新验证,不再有足够的空间来将所有字段按其首选大小打包,因此它们的大小被调整为最小大小,通常为 0x0
或足够接近。
您可以采取一些措施来帮助事情顺利进行。您可以使用 GridBagConstraints#fill
并使用 GridBagConstraints.HORIZONTAL
作为文本字段,使用 GridBagConstraints.BOTH
作为文本区域,这将执行以下操作无论单元格空间何时小于组件的首选大小,都允许字段“填充”并占据列/行的可用空间。
您可能还会发现将 GridBagConstraints#weightx/y
改为 1
会有帮助。
如果您遇到真正的麻烦,您可以简单地在 JScrollPane
中使用 ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS
,虽然不漂亮,但会添加到 JScrollBar 中
窗口打包时 JScrollPane
的大小
已更新
所以,基本上,我最终对 JScrollPane
和 JTextArea 使用了
sfill
和 weightx/y
的组合
g1.fill = GridBagConstraints.BOTH;
g1.weightx = 1;
g1.weighty = 1;
adminPanel1.add(descTxtPane, g1);
g1.fill = GridBagConstraints.NONE;
g1.weightx = 0;
g1.weighty = 0;
对于JTextField
,我刚刚使用了fill
,它似乎已经稳定了事情......
g1.fill = GridBagConstraints.HORIZONTAL;
adminPanel1.add(idTxt, g1);
g1.fill = GridBagConstraints.NONE;
这导致了类似...
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.regex.Pattern;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
public class AdminWindow extends JDialog implements ActionListener {
private JPanel adminPanel1, adminPanel2, adminPanel3;
private JTabbedPane tabPane;
private GridBagConstraints g1, g2, g3;
private JLabel idLbl, showLbl, descLbl, ageLbl, imgLbl, timeLbl, screenLbl,
stanLbl, vipLbl, idLbl1, showLbl1, descLbl1, ageLbl1, imgLbl1, imgName;
private JTextField idTxt, showTxt, imgTxt, timeTxt, stanTxt, vipTxt,
idTxt1, showTxt1, imgTxt1;
private JTextArea descTxt, descTxt1;
private JComboBox ageCb, ageCb1, screenCb, timeCb, showingCb;
private JScrollPane descTxtPane, descTxtPane1;
private ArrayList<String> screenList, timeList, showingList;
private DefaultComboBoxModel screenModel, timeModel, showingModel;
private JButton submit, clear, seatSubmit, seatClear, addBtn, subBtn,
submit1, clear1, imgBtn;
private double stanPrice, vipPrice;
private String stanPriceString, vipPriceString, priceExpression, imgString;
private Pattern p;
private File dest, chosenFile;
public AdminWindow() {
//frame properties
setTitle("Admin Panel");
//setSize(Dimensions.getScreenWidth() - 100, Dimensions.getScreenHeight() - 100);
setAlwaysOnTop(true);
// setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
//regular expression validations
priceExpression = "[0-9]{1,2}[.]{1}[0-9]{2}";
p = Pattern.compile(priceExpression);
//panel dec
tabPane = new JTabbedPane();
adminPanel1 = new JPanel();
adminPanel2 = new JPanel();
adminPanel3 = new JPanel();
g1 = new GridBagConstraints();
g2 = new GridBagConstraints();
g3 = new GridBagConstraints();
//label dec
idLbl = new JLabel("Film ID");
showLbl = new JLabel("Film Name");
descLbl = new JLabel("Film Description");
ageLbl = new JLabel("Age Rating");
imgLbl = new JLabel("Image");
idLbl1 = new JLabel("Film ID");
showLbl1 = new JLabel("Film Name");
descLbl1 = new JLabel("Film Description");
ageLbl1 = new JLabel("Age Rating");
imgLbl1 = new JLabel("Image");
timeLbl = new JLabel("Showing Times");
screenLbl = new JLabel("Screen Number");
stanLbl = new JLabel("Standard Ticket Cost (£)");
vipLbl = new JLabel("VIP Ticket Cost (£)");
imgName = new JLabel("filename.jpg");
//label properties
// imgName.setPreferredSize(new Dimension(100, 20));
//txttfield dec
idTxt = new JTextField(4);
showTxt = new JTextField(30);
descTxt = new JTextArea(4, 30);
descTxtPane = new JScrollPane(descTxt, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
imgTxt = new JTextField();
idTxt1 = new JTextField(4);
showTxt1 = new JTextField(30);
descTxt1 = new JTextArea(4, 30);
descTxtPane1 = new JScrollPane(descTxt1, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
imgTxt1 = new JTextField();
timeTxt = new JTextField(4);
stanTxt = new JTextField(4);
vipTxt = new JTextField(4);
//textfield properties
idTxt1.setEditable(false);
descTxt.setWrapStyleWord(true);
descTxt.setLineWrap(true);
//drop-down dec
ageCb = new JComboBox();
ageCb1 = new JComboBox();
screenCb = new JComboBox();
timeCb = new JComboBox();
showingCb = new JComboBox();
//dropdown properties
// timeCb.setPreferredSize(new Dimension(60, 23));
//buttons
submit = new JButton("Submit");
clear = new JButton("Clear");
submit1 = new JButton("Submit");
clear1 = new JButton("Clear");
seatSubmit = new JButton("Submit");
seatClear = new JButton("Show Current");
addBtn = new JButton("+");
subBtn = new JButton("-");
imgBtn = new JButton("Browse..");
//button properties
addBtn.setFocusPainted(false);
subBtn.setFocusPainted(false);
addBtn.setMargin(new Insets(0, 5, 0, 5));
subBtn.setMargin(new Insets(0, 5, 0, 5));
//listeners
submit.addActionListener(this);
clear.addActionListener(this);
seatSubmit.addActionListener(this);
seatClear.addActionListener(this);
addBtn.addActionListener(this);
subBtn.addActionListener(this);
imgBtn.addActionListener(this);
//fill price text fields with existing prices
defaultForm();
//add items to jcombobox
ageCb.addItem("U");
ageCb.addItem("12A");
ageCb.addItem("15");
ageCb.addItem("18");
ageCb1.addItem("U");
ageCb1.addItem("12A");
ageCb1.addItem("15");
ageCb1.addItem("18");
//panel properties
adminPanel1.setLayout(new GridBagLayout());
adminPanel2.setLayout(new GridBagLayout());
adminPanel3.setLayout(new GridBagLayout());
adminPanel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "New Showing"));
adminPanel2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "Seat Prices"));
adminPanel3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "Edit Showing"));
//ading panels to tabbed pane
tabPane.addTab("Add Showings", null, adminPanel1, "Add new showings & showing times");
tabPane.addTab("Seat Prices", null, adminPanel2, "Change seat prices");
tabPane.addTab("Edit Showing", null, adminPanel3, "Edit existing showing");
//-----adding components to pane--------------------------------------!
g1.gridx = 0;
g1.gridy = 0;
g1.insets = new Insets(10, 0, 0, 10);
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(idLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.fill = GridBagConstraints.HORIZONTAL;
adminPanel1.add(idTxt, g1);
g1.fill = GridBagConstraints.NONE;
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(showLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 4;
g1.fill = GridBagConstraints.HORIZONTAL;
adminPanel1.add(showTxt, g1);
g1.fill = GridBagConstraints.NONE;
g1.gridwidth = 1;
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(descLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 4;
g1.fill = GridBagConstraints.BOTH;
g1.weightx = 1;
g1.weighty = 1;
adminPanel1.add(descTxtPane, g1);
g1.fill = GridBagConstraints.NONE;
g1.weightx = 0;
g1.weighty = 0;
g1.gridwidth = 1;
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(ageLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
adminPanel1.add(ageCb, g1);
g1.gridy++;
g1.gridx--;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(imgLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 2;
adminPanel1.add(imgBtn, g1);
g1.gridx = 3;
adminPanel1.add(imgName, g1);
g1.gridwidth = 1;
g1.gridy++;
g1.gridx = 0;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(screenLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
adminPanel1.add(screenCb, g1);
g1.gridx--;
g1.gridy++;
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(timeLbl, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.fill = GridBagConstraints.HORIZONTAL;
adminPanel1.add(timeTxt, g1);
g1.fill = GridBagConstraints.NONE;
g1.gridx++;
adminPanel1.add(addBtn, g1);
g1.gridx++;
adminPanel1.add(timeCb, g1);
g1.gridx++;
adminPanel1.add(subBtn, g1);
//buttons
g1.gridy++;
g1.gridx = 0;
g1.insets = new Insets(10, 0, 10, 10); //top, right, bottom, left
g1.anchor = GridBagConstraints.LINE_END;
adminPanel1.add(clear, g1);
g1.gridx++;
g1.anchor = GridBagConstraints.LINE_START;
g1.gridwidth = 4;
adminPanel1.add(submit, g1);
g1.gridwidth = 1;
//------adding components to panel2-----------------------------------!
//left
g2.gridx = 0;
g2.gridy = 0;
g2.insets = new Insets(10, 10, 0, 10);
g2.anchor = GridBagConstraints.LINE_END;
adminPanel2.add(stanLbl, g2);
g2.gridy++;
adminPanel2.add(vipLbl, g2);
g2.gridy++;
adminPanel2.add(seatClear, g2);
//right
g2.gridy = 0;
g2.gridx++;
g2.anchor = GridBagConstraints.LINE_START;
g2.fill = GridBagConstraints.HORIZONTAL;
adminPanel2.add(stanTxt, g2);
g2.fill = GridBagConstraints.NONE;
g2.gridy++;
g2.fill = GridBagConstraints.HORIZONTAL;
adminPanel2.add(vipTxt, g2);
g2.fill = GridBagConstraints.NONE;
g2.gridy++;
adminPanel2.add(seatSubmit, g2);
//-----adminpanel3-----------------------------------------------------
//adding components to panel1
g3.gridx = 1;
g3.gridy = 0;
g3.insets = new Insets(10, 0, 0, 10);
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 4;
adminPanel3.add(showingCb, g3);
g3.gridwidth = 1;
g3.gridx--;
g3.gridy++;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(idLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.fill = GridBagConstraints.HORIZONTAL;
adminPanel3.add(idTxt1, g3);
g3.fill = GridBagConstraints.NONE;
g3.gridy++;
g3.gridx--;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(showLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 5;
g3.fill = GridBagConstraints.HORIZONTAL;
adminPanel3.add(showTxt1, g3);
g3.fill = GridBagConstraints.NONE;
g3.gridwidth = 1;
g3.gridy++;
g3.gridx--;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(descLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 4;
g3.fill = GridBagConstraints.BOTH;
g3.weightx = 1;
g3.weighty = 1;
adminPanel3.add(descTxtPane1, g3);
g3.fill = GridBagConstraints.NONE;
g3.weightx = 0;
g3.weighty = 0;
g3.gridwidth = 1;
g3.gridy++;
g3.gridx--;
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(ageLbl1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
adminPanel3.add(ageCb1, g3);
g3.gridy++;
g3.gridx--;
//buttons
g3.gridy++;
g3.gridx = 0;
g3.insets = new Insets(10, 0, 10, 10); //top, right, bottom, left
g3.anchor = GridBagConstraints.LINE_END;
adminPanel3.add(clear1, g3);
g3.gridx++;
g3.anchor = GridBagConstraints.LINE_START;
g3.gridwidth = 4;
adminPanel3.add(submit1, g3);
g3.gridwidth = 1;
//adding tabbed pane to frame
this.add(tabPane);
this.pack();
//visibility
setVisible(true);
tabPane.setVisible(true);
//actionlisteners
}
public static void main(String[] args) {
AdminWindow test = new AdminWindow();
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == imgBtn) {
//--JFileChooser, ugly but better to use--
String userDir = System.getProperty("user.home");
JFileChooser chooser = new JFileChooser(userDir + "/Desktop");
int choice = chooser.showDialog(this, "Choose");
if (choice != JFileChooser.APPROVE_OPTION) {
return;
}
FileNameExtensionFilter filter = new FileNameExtensionFilter("Image Files", "jpg", "png", "gif", "jpeg");
chooser.setAcceptAllFileFilterUsed(false);
chooser.addChoosableFileFilter(filter);
chosenFile = chooser.getSelectedFile();
imgName.setText(chosenFile.getName());
dest = new File(System.getProperty("user.dir") + "/src/iegroup/resources", chosenFile.getName());
imgString = "resources/" + chosenFile.getName();
System.out.println(dest.toPath());
}
if (e.getSource() == submit) {
if (e.getSource() == clear) {
}
if (e.getSource() == seatSubmit) {
}
}
if (e.getSource() == seatClear) {
defaultForm();
}
if (e.getSource() == addBtn) {
timeModel.addElement(timeTxt.getText());
timeList.add(timeTxt.getText());
}
if (e.getSource() == subBtn) {
timeModel.removeElement(timeCb.getSelectedItem());
timeList.remove(timeCb.getSelectedItem());
}
}
private void defaultForm() {
stanPriceString = String.format("%.2f", stanPrice);
vipPriceString = String.format("%.2f", vipPrice);
stanTxt.setText(stanPriceString);
vipTxt.setText(vipPriceString);
}
public void showValidationPrompt(String message) {
JFrame validFrame = new JFrame();
validFrame.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(validFrame, message, "Invalid input", JOptionPane.CLOSED_OPTION);
}
public void showSuccessPrompt(String message) {
JFrame errorFrame = new JFrame();
errorFrame.setAlwaysOnTop(true);
JOptionPane.showMessageDialog(errorFrame, message, "Success", JOptionPane.CLOSED_OPTION);
}
}
关于java - 当向 JTextArea 输入大量文本时,JTextFields 和 JTextArea 会缩小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34833940/
表架构 DROP TABLE bla; CREATE TABLE bla (id INTEGER, city INTEGER, year_ INTEGER, month_ INTEGER, val I
我需要拆分字符串/或从具有以下结构的字符串中获取更容易的子字符串。 字符串将来自 window.location.pathname 或 window.location.href,看起来像 text/n
每当将对象添加到数组中时,我都会尝试更新 TextView ,并在 TextView 中显示该文本,如下所示: "object 1" "object 2" 问题是,每次将新对象添加到数组时,它都会覆盖
我目前正在寻找使用 Java 读取网站可见文本并将其存储为纯文本字符串的方法。 换句话说,我想转换成这样: Hello stupid World进入“ Hello World ” 或者类似的东西 Un
我正在尝试以文本和 HTML 格式发送电子邮件,但无法正确发送正确的 header 。特别是,我想设置 Content-Type header ,但我找不到如何为 html 和文本部分单独设置它。 这
我尝试了上面的代码,但我无法绑定(bind)文本,我怎样才能将资源内部文本 bloc
我刚刚完成了 Space Shooter 教程,由于没有 GUIText 对象,所以我创建了 UI.Text 对象并进行了相应的编码。它在统一播放器中有效,但在构建 Web 应用程序后无效。我花了一段
我有这个代码: - (IBAction)setButtonPressed:(id)sender { NSUserDefaults *sharedDefaults = [[NSUserDefau
抱歉标题含糊不清,但我想不出我想在标题中做什么。无论如何,对于图像上的文本,我使用了 JLabel 文本并将其添加到图标中。 JLabel icon = new JLabel(new Imag
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我在将 Twitter 嵌入到我从 HTML 5 转换的 wordpress 运行网站时遇到问题。 我遇到的问题是推文不是我的自定义字体... 这是我无法使用任何 css 定位的 HTML 代码,我正
我正在尝试找到解决由于使用以下形式的代码而导致的冗余字符串连接问题的最佳方法: logger.debug("Entering loop, arg is: " + arg) // @1 在大多数情况下,
我写了这个测试 @Test public void removeRequestTextFromRouteError() throws Exception { String input = "F
我目前正在创建一个正则表达式来拆分所有匹配以下格式的字符串:&[文本],并且需要获取文本。字符串可能类似于:something &[text] &[text] everything &[text] 等
有没有办法将标题文本从一个词变形为另一个词,同时保留两个词中使用的字母?我看过的许多 css 文本动画大多是视觉的,很少有旋转整个单词的。 我想要做的是从一个词过渡,例如“BEACH”到“CHANGE
总结matplotlib绘图如何设置坐标轴刻度大小和刻度。 上代码: ?
我在容器 (1) 中创建了容器 (2)。你能帮忙如何向容器(1)添加文本吗?下面是我的代码 return Scaffold( body: Padding( padding: c
我似乎找不到任何人或任何人这样做过。我试图限制我们使用的图像数量,并想创建一个带有渐变作为其“颜色”的文本,并在其周围设置渐变轮廓/描边 到目前为止,我还没有看到任何将两者结合在一起的东西。 我可以自
我正在为视频游戏暗黑破坏神 2 使用 discord.py 构建一个不和谐机器人。其中一项功能要求机器人从暗黑破坏神 2 屏幕截图中提取项目的名称和属性。我目前正在为此使用 pytesseract,但
我很难弄清楚如何旋转 strip.text theme 中的属性来自 ggplot2 .我使用的是 R 版本 3.4.2 和 ggplot2 版本 2.2.1。 以下是 MWE 的数据。 > dput
我是一名优秀的程序员,十分优秀!