Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码赢得';我不去下一行_Java_Swing_User Interface - Fatal编程技术网

Java 代码赢得';我不去下一行

Java 代码赢得';我不去下一行,java,swing,user-interface,Java,Swing,User Interface,请帮忙。当我运行这个GUI时,数字会从框架中消失。有没有办法让它转到下一行?另外,如何将滚动条添加到此页面?我想让它垂直和水平滚动 import java.io.*; import java.util.*; import java.lang.*; import java.text.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class prime extends JFrame {

请帮忙。当我运行这个GUI时,数字会从框架中消失。有没有办法让它转到下一行?另外,如何将滚动条添加到此页面?我想让它垂直和水平滚动

import java.io.*;
import java.util.*;
import java.lang.*;
import java.text.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class prime extends JFrame {

    public static void main(String[] args) {
        prime frame = new prime();
    }

    private TextPanel3C panel1;
    private JPanel inPanel;
    private JTextField inField;

    public prime() {
        final int width = 500;
        final int height = 500;
        setSize(width, height);
        setTitle("Find Prime Numbers");

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        panel1 = new TextPanel3C();
        add(panel1, "Center");

        inPanel = new JPanel();
        inPanel.add(new JLabel("Enter Your Number", SwingConstants.RIGHT));
        inField = new JTextField(20);
        ActionListener inListener = new TextListener();
        inField.addActionListener(inListener);

        inPanel.add(inField);
        add(inPanel, "South");

        setVisible(true);
    }

    private class TextListener implements ActionListener {

        public void actionPerformed(ActionEvent event) {
            String message = inField.getText();
            inField.setText("");
            panel1.setMessage(message);
        }
    }

    class TextPanel3C extends JPanel {

        private String message;
        private Color backGroundColor;

        public TextPanel3C() {
            message = "";
            backGroundColor = Color.white;
        }

        public TextPanel3C(String x, Color background) {
            message = x;
            backGroundColor = background;
        }

        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            Graphics2D g2 = (Graphics2D) g;
            int width = getWidth();
            int height = getHeight();
            setBackground(backGroundColor);
            g2.setColor(Color.black);
            Font x = new Font("TimesNewRoman", Font.BOLD, 20);
            g2.setFont(x);
            FontMetrics fm = g2.getFontMetrics(x);

            g2.drawString(message, 50, 50);
            if (!(message.equals(""))) {
                g2.drawString(previousPrime(message), 50, 78);
            }
        }

        public void setMessage(String message) {
            if (isPrime(Integer.parseInt(message))) {
                this.message = message + " is a prime number.";
            } else {
                this.message = message + " is not a prime number.";
            }
            repaint();
        }

        public boolean isPrime(int num) {
            for (int i = 2; i < num; i++) {
                if (num % i == 0) {
                    return false;
                }
            }
            if (num < 2) {
                return false;
            }

            return true;
        }

        public String previousPrime(String message) {
            String totalPrimeNum = "";
            int finalNum = Integer.parseInt(message.substring(0, message.indexOf(" ")));
            int count = 0;
            for (int i = 2; i < finalNum; i++) {
                if (isPrime(i)) {
                    totalPrimeNum += " " + i;
                    count++;
                }

                if (count == 10) {
                    totalPrimeNum += "\n";
                    count = 0;
                }
            }

            if (isPrime(Integer.parseInt(message.substring(0, message.indexOf(" "))))) {
                totalPrimeNum += " " + finalNum;
            }
            System.out.println(totalPrimeNum);
            return totalPrimeNum;
        }
    }
}
import java.io.*;
导入java.util.*;
导入java.lang.*;
导入java.text.*;
导入java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类素数扩展JFrame{
公共静态void main(字符串[]args){
素数帧=新素数();
}
私有文本面板3C面板1;
私人JPanel inPanel;
私人内场;
公共素数(){
最终整数宽度=500;
最终内部高度=500;
设置尺寸(宽度、高度);
setTitle(“查找素数”);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel1=新文本Panel3C();
添加(面板1,“中间”);
inPanel=新的JPanel();
inPanel.add(新的JLabel(“输入您的号码”,SwingConstants.RIGHT));
内场=新的JTextField(20);
ActionListener inListener=新建TextListener();
inField.addActionListener(inListener);
面板内添加(内场);
添加(在面板中,“南”);
setVisible(真);
}
私有类TextListener实现ActionListener{
已执行的公共无效操作(操作事件){
字符串消息=inField.getText();
内场。塞特xt(“”);
面板1.设置消息(消息);
}
}
类TextPanel3C扩展了JPanel{
私有字符串消息;
私色背景色;
公共文本面板3C(){
message=“”;
背景颜色=Color.white;
}
公共文本面板3C(字符串x,彩色背景){
消息=x;
背景颜色=背景;
}
公共组件(图形g){
超级组件(g);
图形2d g2=(图形2d)g;
int width=getWidth();
int height=getHeight();
挫折背景(背景色);
g2.设置颜色(颜色为黑色);
Font x=新字体(“TimesNewRoman”,Font.BOLD,20);
g2.setFont(x);
FontMetrics fm=g2.getFontMetrics(x);
g2.抽绳(消息,50,50);
if(!(message.equals(“”)){
g2.拉丝(前一条主信息),50,78;
}
}
公共无效设置消息(字符串消息){
if(isPrime(Integer.parseInt(message))){
this.message=message+“是一个素数。”;
}否则{
this.message=message+“不是质数。”;
}
重新油漆();
}
公共布尔值isPrime(int num){
for(int i=2;i
  • 将文本写入JTextArea,而不是paintComponent方法
  • 声明您的JTextArea具有一定数量的行和列,即,
    JTextArea myTextArea=newjtextarea(20,40)用于20行和40列
  • 不要设置文本区域的大小或首选大小
  • 通过调用Append方法向其追加文本:
    myTextArea.Append(someText+“\n”)
  • 创建一个JScrolLPane并将JTextArea传递到scrollpane的构造函数中,然后将滚动窗格添加到GUI中。e、 例如,
    JScrollPane scrollPane=newjscrollpane(myTextArea)。然后再次将滚动窗格添加到GUI,而不是JTextArea。请注意,实际上并没有将JTextArea添加到JScrollPane,而是添加到scrollpane的视口
      • 将文本写入JTextArea,而不是paintComponent方法
      • 声明您的JTextArea具有一定数量的行和列,即,
        JTextArea myTextArea=newjtextarea(20,40)用于20行和40列
      • 不要设置文本区域的大小或首选大小
      • 通过调用Append方法向其追加文本:
        myTextArea.Append(someText+“\n”)
      • 创建一个JScrolLPane并将JTextArea传递到scrollpane的构造函数中,然后将滚动窗格添加到GUI中。e、 例如,
        JScrollPane scrollPane=newjscrollpane(myTextArea)。然后再次将滚动窗格添加到GUI,而不是JTextArea。请注意,实际上并没有将JTextArea添加到JScrollPane,而是添加到scrollpane的视口

      添加(面板1,“中间”)
      ,我不知道你在哪里找到过这样的代码,但我想把那个教程去掉,因为它不是教基础知识的。不要使用硬编码字符串。API提供了一个字段供您使用<代码>添加(面板1,BorderLayout.CENTER)添加(面板1,“中间”),我不知道你在哪里找到过这样的代码,但我想把那个教程去掉,因为它不是教基础知识的。不要使用硬编码字符串。API提供了一个字段供您使用<代码>添加(面板1,BorderLayout.CENTER)。在我的代码中,我应该把它放在哪里?