下面是我的代码,非常感谢。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
@SuppressWarnings({ "serial", "unused" })
public class MedGUITest extends JFrame {
private JLabel medName;
private JLabel medTime;
private JLabel medDose;
private JLabel finished;
private JTextField textFieldMed;
private JTextField textFieldTime;
private JTextField textFieldDose;
private JButton submitButton;
private JButton meds;
static int winWidth = 300;
static int winLength = 300;
JTextArea ta = new JTextArea(winWidth,winLength);
JPanel panel = new JPanel();
public MedGUITest() throws FileNotFoundException, IOException{
panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));
add(panel);
setLayout(new FlowLayout());
medName = new JLabel("Type Medication Here:");
panel.add(medName);
textFieldMed = new JTextField("",15);
panel.add(textFieldMed);
medDose = new JLabel("Type Medication Dose:");
panel.add(medDose);
textFieldDose = new JTextField("",15);
panel.add(textFieldDose);
medTime = new JLabel("Type Medication Time:");
panel.add(medTime);
textFieldTime = new JTextField("",15);
panel.add(textFieldTime);
submitButton = new JButton("Click Here to Add");
submitButton.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
String medName = textFieldMed.getText();
String medDose = textFieldDose.getText();
String medTime = textFieldTime.getText();
File med = new File("med.txt");
try(PrintWriter out= new PrintWriter(new FileWriter(med,true))) {
out.println("Medication: " + medName + " " +"Dosage: "+ medDose + " Mg"+ " " +"Time of day: "+ medTime);
String lastMed = ("Medication: " + medName + " " +"Dosage: "+ medDose + " Mg"+ " " +"Time of day: "+ medTime+ "\n");
finished.setText("Your Med has been added");
Timer t = new Timer(5000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
finished.setText(null);
}
});
t.setRepeats(false);
t.start();
ta.append(lastMed);
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
panel.add(submitButton);
final File med = new File("med.txt");
if(med.exists()){
}else{
meds = new JButton("Click Here to see meds");
meds.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(med.exists()){
try {
ta.read(new FileReader("med.txt"),null);
} catch (IOException e1) {
e1.printStackTrace();
}
panel.add(ta);}
}
});
panel.add(meds);
}
finished = new JLabel("");
panel.add(finished);
if(med.exists()){
ta.read(new FileReader("med.txt"),null);
panel.add(ta);}
}
public static void main(String args[]) throws FileNotFoundException, IOException{
MedGUITest gui = new MedGUITest();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
gui.pack();
gui.setVisible(true);
gui.setTitle("Standard GUI");
}
}
尝试向内容窗格添加emptyborder
。..
getContentPane().setBorder(new EmptyBorder(10, 10, 10, 10));
您还可以考虑使用一个提供“填充”的布局管理器,就我个人而言,我更喜欢gridbaglayout
,但您也可以查看flowlayout(intalign,inthgap,intvgap)
,但这将影响所有组件之间的间距,而不仅仅是框架
看看如何在容器中使用边框和布局组件,以获得更多的想法
我已经找了几个小时类似的问题,但我对这个问题一无所知。希望有人能帮助我。 这里是类除了导入: 主要功能如下: 没有显示中的元素(,)。
我有一个简单的设置,只有一个会话,支持一个JSF xhtml文件。在此范围内,我触发一个事件,期望同一会话和任何其他会话在提交时都将接收该事件。 然而,奇怪的是,我可以看到在事件触发期间,只有当前会话接收到它,而没有任何其他会话。我通过使用两种不同的浏览器(本例中为Safari和Firefox)来确保我有两个不同的会话。 我是否错误地理解了基于CDI的事件的概念? 支持会话的bean: xhtml
问题内容: 我有这段代码来获取我需要的所有元素并进行一些处理。问题是我需要指定每个面板以获取其中的元素。 我想做这样的事情,并且不需要指定所有面板名称就可以获取所有元素。我该怎么做。下面的代码无法获取所有元素。 问题答案: 您可以编写一个递归方法并在每个容器上递归: 该站点提供了一些示例代码: 如果只需要直接子组件的组件,则可以将递归深度限制为2。
我试图获取数组的每个元素并检查它是否是回文。如果给定数组中的所有元素都是回文,那么它应该返回1,如果不是,那么它应该返回0。 例如输入5 111 222 333 444 555预期输出1我的输出0 谢谢你的帮助。
问题内容: 首先,对无法提供任何源代码表示歉意。我的项目很大,将所有内容链接起来都是不切实际的,而且我还无法缩小非常烦人的问题。我将尽力在这里进行解释。 我在代码的每个循环中动态创建类的新实例。在循环中会为该实例动态地提供几个属性,例如’name’。在每个循环的最后,新生成的实例将添加到另一个第3类中保存的ArrayList中。 但是,问题在于,无论出于何种原因添加新元素时,所有先前的元素都会更改
传入:{ text: "子目录一", id: 880 } 期望输出: 传入:{ text: "根目录", id: 9521 } 期望输出: