主頁 > 後端開發 > 如何將JRadiobutton鏈接到JButton以獲得準確的輸出

如何將JRadiobutton鏈接到JButton以獲得準確的輸出

2022-02-20 00:12:11 後端開發

背景資訊:在我的程式中,我有一個文本檔案,它被讀入,并包含不同書籍型別的串列及其受尊重的資訊。我已成功地將這些文本值的陣列傳遞給我的字典類。在字典類中,我用正確的資料加載它,或者換句話說,所有由整數 2 標識為字典的書籍。然后我將它傳遞回我創建并使用 ActionListener 和 actionPerformed 方法的 GUI 類。我創建了一個單選按鈕串列(在此示例中僅關注字典一個),當我選擇字典并點擊“單擊以查看庫內容”時,它應該為我提供一個不錯的 JTable 中的所有字典結果(JTable 作業正常已經)。

我的問題:單選按鈕未鏈接到“單擊以查看庫內容”按鈕,因此我可以單擊任何單選按鈕,它會給出相同的字典結果。我什至不能選擇任何東西,只能點擊“點擊查看圖書館內容”按鈕,它會給我字典。

問題:如何制作字典單選按鈕,并且只有字典按鈕,列印字典結果?

GUI 類(查看建構式中類的第一個方法):

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.KeyEvent;
import java.io.*;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.Box;
import static javax.swing.Box.createHorizontalBox;
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class GUICommandFunctions extends JPanel {

    private final JButton ViewAllContentButton;
    private final JPanel radioButtonPanelOne;
    private final JPanel radioButtonPanelTwo;
    private final JRadioButton allBookTypes;
    private final JRadioButton dictionary;
    private final JRadioButton cookbook;
    private final JRadioButton novel;
    private final JRadioButton graphicNovel;
    private final JRadioButton allAuthors;
    private final JRadioButton DouglasAdams;
    private final JRadioButton BrianKVaughan;
    private final JRadioButton AlanMoore;
    private final JRadioButton NealStephenson;
    private final JRadioButton BrandonSanderson;
    private final JRadioButton MichaelShaara;
    private final JRadioButton NeilGaiman;
    private final JRadioButton english;
    private final JRadioButton french;
    private final JTextArea MiddleField;
    private final JPanel searchPanel;
    private JTextField searchFunction = new JTextField();
    private final JLabel searchInventory = new JLabel("Library Inventory");
    private ButtonGroup btnGroup1 = new ButtonGroup();
    private ButtonGroup btnGroup2 = new ButtonGroup();
    public String ArrayRecords[];
    public JFrame f;
    public JTable j;
    
    // Constructor
    GUICommandFunctions() {
        
         Frame initialization  ***// FROM HERE***
        f = new JFrame();
        // Frame Title
        f.setTitle("JTable Example");
 
        LoadArrayData();
     
        this.setLayout(new BorderLayout()); // Setting Layout 
  
        // Add a view content button
        ViewAllContentButton = new JButton("Click to View Library Content");
        ViewAllContentButton.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) { // When clicked display content of dictionary
                    Dictionary dictionary = new Dictionary();
                    dictionary.LoadArrayData();
                    String[][] data = new String[dictionary.arrayCount][5]; 
                    if (dictionary.arrayCount == 0 ) {
                        System.out.println("No Dictionary Record Found!");
                    } else {
                        for (int i = 0; i < dictionary.arrayCount; i  ) {
                            
                            String[] tokens = dictionary.ArrayRecords[i].split(",") ;
                            System.out.println(tokens[1]   " "   tokens[4]   " "   tokens[2]   " "   tokens[3]   " "   tokens[5]   " ");
                            // Data to be displayed in the JTable
                            data[i][0] = tokens[1];
                            data[i][1] = tokens[4];
                            data[i][2] = tokens[2];
                            data[i][3] = tokens[3];
                            data[i][4] = tokens[5];
                        }    
                        // Column Names
                        String[] columnNames = { "Title", "Author/Language", "Publisher", "Page Cunt", "Version"};
 
                        // Initializing the JTable
                        j = new JTable(data, columnNames);
                        j.setBounds(30, 40, 200, 300);
 
                        // adding it to JScrollPane
                        JScrollPane sp = new JScrollPane(j);
                        f.add(sp);
                        // Frame Size
                        f.setSize(500, 200);               
                        f.setVisible(true);
                        // Frame Visible = true                    
                    }                 
                }
            }
        ); ***// TO HERE***
                

        this.add(ViewAllContentButton, BorderLayout.SOUTH); // Set button to the left
        ViewAllContentButton.setForeground(Color.BLACK);
        ViewAllContentButton.setFont(new Font("Times New Roman", Font.BOLD, 15));
        // Create a panels for the radio buttons
        radioButtonPanelOne = new JPanel(new GridLayout(5, 1));
        radioButtonPanelOne.setBackground(Color.LIGHT_GRAY);
        radioButtonPanelTwo = new JPanel(new GridLayout(5, 1));
        radioButtonPanelTwo.setBackground(Color.LIGHT_GRAY);
        
        // Create genre buttons
        allBookTypes = new JRadioButton("ALL CATEGORY TYPES");
        dictionary = new JRadioButton("Dictionaries");
        cookbook = new JRadioButton("Cookbooks");
        novel = new JRadioButton("Novels");
        graphicNovel = new JRadioButton("Graphic Novels");
        // Create author buttons
        allAuthors = new JRadioButton("ALL AUTHORS");
        DouglasAdams = new JRadioButton("Douglas Adams");
        BrianKVaughan = new JRadioButton ("Brian K Vaughan");
        AlanMoore = new JRadioButton("Alan Moore");
        NealStephenson = new JRadioButton("Neal Stephenson");
        BrandonSanderson = new JRadioButton("Brandon Sanderson");
        MichaelShaara = new JRadioButton("Michael Shaara");
        NeilGaiman = new JRadioButton("Neil Gaiman");
        // Add author buttons
        btnGroup1.add(allAuthors);
        btnGroup1.add(DouglasAdams);
        btnGroup1.add(BrianKVaughan);
        btnGroup1.add(AlanMoore);
        btnGroup1.add(BrandonSanderson);
        btnGroup1.add(MichaelShaara);
        btnGroup1.add(NeilGaiman);
        btnGroup1.add(NealStephenson);
        
        // Create language buttons
        english = new JRadioButton("English Dictionaries");
        french = new JRadioButton("French Dictionaries");
        
        // Button group for radio buttons
        btnGroup2.add(allBookTypes);
        btnGroup2.add(french);
        btnGroup2.add(allBookTypes);
        radioButtonPanelOne.add(allBookTypes);
        allBookTypes.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        allBookTypes.setSelected(true);
        // Adding genre radio buttons
        btnGroup2.add(dictionary);
        radioButtonPanelOne.add(dictionary);
        dictionary.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        btnGroup2.add(cookbook);
        radioButtonPanelOne.add(cookbook);
        cookbook.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        btnGroup2.add(novel);
        radioButtonPanelOne.add(novel);
        novel.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        btnGroup2.add(graphicNovel);
        radioButtonPanelOne.add(graphicNovel);
        graphicNovel.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelOne.setPreferredSize(new Dimension(600,50));
        
        //Button group for author buttons
        radioButtonPanelTwo.add(allAuthors);
        allAuthors.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        allAuthors.setSelected(true);
        radioButtonPanelTwo.add(DouglasAdams);
        DouglasAdams.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelTwo.add(BrianKVaughan);
        BrianKVaughan.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelTwo.add(AlanMoore);
        AlanMoore.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelTwo.add(NealStephenson);
        NealStephenson.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelTwo.add(BrandonSanderson);
        BrandonSanderson.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelTwo.add(MichaelShaara);
        MichaelShaara.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        radioButtonPanelTwo.add(NeilGaiman);
        NeilGaiman.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        this.add(radioButtonPanelTwo, BorderLayout.NORTH);
         
        // Button group for language buttons
        btnGroup2.add(english);
        radioButtonPanelOne.add(english);
        english.setFont(new Font("Times New Roman", Font.ITALIC, 15));
        btnGroup2.add(french);
        radioButtonPanelOne.add(french);
        french.setFont(new Font("Times New Roman", Font.ITALIC, 15));        
        this.add(radioButtonPanelOne, BorderLayout.CENTER);
        
        // Add text area with all radio buttons        
        MiddleField = new JTextArea();
        MiddleField.setPreferredSize(new Dimension(400,400));
        MiddleField.setEditable(false);
        MiddleField.setBackground(Color.LIGHT_GRAY);
        //this.add(MiddleField, BorderLayout.CENTER);
        
        //Create a panel for search bar feature
        searchPanel = new JPanel();
        searchPanel.setLayout(new GridLayout(100, 1, 5, 5));
        searchPanel.add(searchInventory);
        searchInventory.setFont(new Font("Times New Roman", Font.BOLD, 15));
        JScrollPane newScroll = new JScrollPane(searchPanel);
        newScroll.setPreferredSize(new Dimension(200, 1000));
        this.add(newScroll, BorderLayout.EAST);
        
        // Add focus lost/gained listeners for text field
        searchFunction = new JTextField("Search by book reference...");
        searchFunction.setForeground(Color.LIGHT_GRAY);
        searchPanel.add(searchFunction);
        TextFieldHandler handler = new TextFieldHandler();
        searchFunction.addActionListener(handler);
        searchFunction.addFocusListener(handler);
        
        
    } // End constructor GUICommandFunctions
   
    // Private class to handle events
    private class TextFieldHandler implements ActionListener, FocusListener {
        
        @Override
        public void actionPerformed (ActionEvent e) {
            String str = String.format("%s", e.getActionCommand());
            
            // Show message to users with text input
            JOptionPane.showMessageDialog(null, str);
        } // End actionPerformed
        
        // If you click inside text field and it gains focus, remove text
        @Override
        public void focusGained(FocusEvent e) {
            ((JTextField)e.getSource()).setText("");            
        } // End focusGained
        
        // But if you leave text field and it loses focus without text, reset field
        
        @Override
        public void focusLost(FocusEvent e) {
            if (((JTextField)e.getSource()).getText().equals(""))
            {
                ((JTextField)e.getSource()).setText("Search by book refernece...");
            }
            
        } // End focusLost
    
    } // End private class TextFieldHandler
    
    // Create JTable that opens on ViewAllContentButton

    public void  LoadArrayData () {

        String ArrayRecords[];
        int arrayCount;
        FileReader fr = null;
            
        try {
              fr = new FileReader("C:\\Users\\MarkC\\Documents\\NetBeansProjects\\case_1\\case_1\\src\\case_1\\library.txt"); //Reads in text file
        } catch (FileNotFoundException ex) {
            Logger.getLogger(GUICommandFunctions.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        BufferedReader reader = new BufferedReader(fr);  
        ArrayList<String> str = new ArrayList<>();
        String line = "";
        arrayCount = 0;
        try {
            while((line=reader.readLine())!=null) {
                str.add(line);
                arrayCount = arrayCount   1;                
            }
        } catch (IOException ex) {
            Logger.getLogger(GUICommandFunctions.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        ArrayRecords = new String[arrayCount];       
        for (int i = 0; i < arrayCount; i  ) {
            ArrayRecords[i] = str.get(i);
            //System.out.println(ArrayRecords[i]);          
        }
        
        // Here we would actually set the type to what the user wants (note: Set it to a "0" if the user wants all Books)
        String selType = "0";  
        
        // Call method to select Books by category type
        String methodResult = SelectType(str, arrayCount, selType);
        
    }  

    private static String SelectType (ArrayList<String> str, int arrayCount, String selType) {
        for (int i = 1; i < arrayCount; i  ) {
           
            String buffer = str.get(i);
            String bookCat = buffer.substring(0,1);
            
            // Print books by Category - "0" type means print all Books
            if (selType.equals(bookCat)) {
                System.out.println(buffer);
            }          
            else if (selType.equals("0")) {
                System.out.println(buffer);
            }
        }
        return "0";   
    }
    
} // End public class GUICommandFunctions

字典類:

import java.io.*;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Dictionary extends NonFictionBook {
    
    public String ArrayRecords[];
    public int arrayCount;  
    
    public void  LoadArrayData () {
           
        FileReader fr = null;
            
        try {
              fr = new FileReader("C:\\Users\\MarkC\\Documents\\NetBeansProjects\\case_1\\case_1\\src\\case_1\\library.txt"); //Reads in text file
        } catch (FileNotFoundException ex) {
            Logger.getLogger(GUICommandFunctions.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        BufferedReader reader = new BufferedReader(fr);  
        ArrayList<String> str = new ArrayList<>();
        String line = "";
        arrayCount = 0;
        try {
            while((line=reader.readLine())!=null) {
                str.add(line);
                arrayCount = arrayCount   1;                
            }
        } catch (IOException ex) {
            Logger.getLogger(GUICommandFunctions.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        int dictCount = 0;
        ArrayRecords = new String[arrayCount];       
        for (int i = 0; i < arrayCount; i  ) {
            if (str.get(i).substring(0,1).equals("1") && i > 0) {
                ArrayRecords[dictCount] = str.get(i);
                dictCount = dictCount   1;
            }
                
        }
        arrayCount =  dictCount;  
    } 
}

圖形用戶界面設計:

如何將 JRadiobutton 鏈接到 JButton 以獲得準確的輸出

uj5u.com熱心網友回復:

您的代碼需要處理 ActionListener 中的 JRadioButton 資訊,而獲得選定單選按鈕的一種方法是使用 ButtonGroup 的.getSelection()方法。這將回傳已為該組選擇的單選按鈕的 ButtonModel,如果未選擇任何內容,則回傳 null。

ActionListener 里面會有這樣的代碼:

private void getAuthor() {
    ButtonModel model = authorBtnGroup.getSelection();
    if (model != null) {
        String actionCommand = model.getActionCommand();
        System.out.println("Selection: "   actionCommand);
    }
}

您在其中查詢兩個ButtonGroups 以獲取當前選擇(這里我只是做一個來展示一個示例)并從獲得的模型中提取所需的資訊(如果不是 null)。

我的最小可重復示例來說明此案例:

import java.awt.BorderLayout;
import java.awt.GridLayout;
import javax.swing.*;

@SuppressWarnings("serial")
public class GettingRadioButtonResults extends JPanel {
    public static final String[] AUTHORS = { "all Authors", "Douglas Adams", 
            "Brian K Vaughan", "Alan Moore", "Brandon Sanderson", 
            "Michael Shaara", "Neil Gaiman", "Neal Stephenson" };
    private ButtonGroup authorBtnGroup = new ButtonGroup();

    public GettingRadioButtonResults() {
        JPanel radioPanel = new JPanel(new GridLayout(0, 2));
        for (String author : AUTHORS) {
            JRadioButton radioBtn = new JRadioButton(author);
            radioBtn.setActionCommand(author);
            radioPanel.add(radioBtn);
            authorBtnGroup.add(radioBtn);
        }

        JButton getAuthorBtn = new JButton("Get Author");
        getAuthorBtn.addActionListener(e -> getAuthor());
        JPanel buttonPanel = new JPanel();
        buttonPanel.add(getAuthorBtn);

        setLayout(new BorderLayout());
        add(radioPanel);
        add(buttonPanel, BorderLayout.PAGE_END);
    }

    private void getAuthor() {
        ButtonModel model = authorBtnGroup.getSelection();
        if (model != null) {
            String actionCommand = model.getActionCommand();
            System.out.println("Selection: "   actionCommand);
        }
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(() -> {
            GettingRadioButtonResults mainPanel = new GettingRadioButtonResults();

            JFrame frame = new JFrame("GUI");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.add(mainPanel);
            frame.pack();
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        });
    }

}

其他建議:

  • 給你的變數命名有意義,使代碼自我注釋,例如,哪個是 ButtonGroup 變數的更好名稱,btnGroup1或者authorBtnGroup
  • 為簡單起見,嘗試將類似資訊分組到陣列或集合中。例如,請注意我用來創建單選按鈕的作者字串陣列。
public static final String[] AUTHORS = { "all Authors", "Douglas Adams", 
            "Brian K Vaughan", "Alan Moore", "Brandon Sanderson", 
            "Michael Shaara", "Neil Gaiman", "Neal Stephenson" };

單選按鈕創建:

JPanel radioPanel = new JPanel(new GridLayout(0, 1));
for (String author : AUTHORS) {
    JRadioButton radioBtn = new JRadioButton(author);
    radioBtn.setActionCommand(author);
    radioPanel.add(radioBtn);
    authorBtnGroup.add(radioBtn);
}

關于如何過濾或更改JTable中顯示的內容,我無法提供任何幫助,除了向您展示如何獲取JRadioButton選擇狀態,因為這個問題,代碼,最重要的是資料,仍然不清楚. 如果您仍然需要幫助,在新問題中發布有效的MRE代碼可能會幫助我們更好地理解這一點。

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428116.html

標籤:爪哇 摇摆 按钮 单选按钮

上一篇:在javaswing中將影像縮放為背景時發生記憶體泄漏

下一篇:GitHubCI PostgreSQL:資料庫創建腳本運行后,資料庫用戶不知何故仍無法登錄

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more