LimeCut Skrevet 15. april 2012 Del Skrevet 15. april 2012 Hei igjen, har dog ikke skrevet i javadelen av forumet før. Jeg driver å lager ett kasseaparat/regning opplegg. Hvor hvert fakturaobjekt har artikler. Foreløbig blir bare alt regna ut og skrevet ut i ett JTextArea. Det jeg dog lurer på er om det er noen måte å få en form for "boks" rundt hvert eneste artikkelobjekt som gjør at man kan velge dette objektet og fjerne det. Hver artikkel i fakturaen har en "unik" nøkkel, linjenummer. Har noen ideer om hva jeg kan se på, og hva det i det hele tatt heter så si ifra! Har tenkt at det kan gå an å bruke en form for selectbox på det, men det vil bli så stygt, så det vil jeg helst unngå. Jeg er relativt ustø i java, så kan godt forklare ting når dere legger ut, siden jeg mer eller mindre kommer til å spørre om ganske obvious ting. Takker på forhånd. Lenke til kommentar
Patton Skrevet 15. april 2012 Del Skrevet 15. april 2012 Jeg ville ha brukt en JTable til å representere et fakturaobjekt, hvor hver artikkel er en rad. Jeg ville ha brukt en spalte med en button/JComboBox for å redigere hver rad, og en eller flere spalter til å beskrive en artikkel. Sjekk ut JTable tutorial som beskriver hvordan du kan bruke en JTable, da spesielt avsnittene "Creating a Table Model", "Concepts: Editors and Renderers", "Using a Combo Box as an editor" og "Using Other Editors". Lenke til kommentar
LimeCut Skrevet 16. april 2012 Forfatter Del Skrevet 16. april 2012 (endret) Jeg ville ha brukt en JTable til å representere et fakturaobjekt, hvor hver artikkel er en rad. Jeg ville ha brukt en spalte med en button/JComboBox for å redigere hver rad, og en eller flere spalter til å beskrive en artikkel. Sjekk ut JTable tutorial som beskriver hvordan du kan bruke en JTable, da spesielt avsnittene "Creating a Table Model", "Concepts: Editors and Renderers", "Using a Combo Box as an editor" og "Using Other Editors". Hei og takker for svar. Skal se på JTable nå tenkte jeg, har også laget ett utkast av hva jeg ser for meg Her er den "blå" boksen den valgte artikkelen, og du får med dette mulighet til å f.eks slette artikkelen fra regningen. Endret 16. april 2012 av LimeCut Lenke til kommentar
LimeCut Skrevet 30. april 2012 Forfatter Del Skrevet 30. april 2012 (endret) Hei. Jeg har kikka litt rundt, bla.a JTable, men fant ikke den like sexy som JList. Har fått opp en nokså allright vindu nå (synes jeg selv) Det som dog er problemet er at jeg prøver nå å få ting på ei linje, men JList cellene nekter å bruke hele bredden. :S Noen som veit om noe lurt å gjøre her? Legger også ved litt kode for det veit jeg mange synes er allright JListTest.java /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package trioplaza; import javax.swing.*; import java.awt.*; /** * * @author LimeCut */ public class JListTest extends JFrame{ Private dude; JPanel topPane, middlePane, bottomPane; JButton payEverything, deleteSelected,addFunds,b,back; JList invoiceList; JLabel header; public JListTest(){ super("Faktura"); // Sånn awesome stuff dude = new Private("kjell","1234","12345678912"); System.out.println("dude made!"); final Invoice faktura = new Invoice(dude); faktura.buyArticle(4000, "Rom 100", 1, 0.08); System.out.println("Rom1"); faktura.buyArticle(1000, "Apekatt", 2, 0.08); System.out.println("Rom2"); faktura.buyArticle(1, "Test", 1, 0.08); System.out.println("Rom3"); faktura.buyArticle(50.50, "Trololol", 3, 0.08); System.out.println("Rom4"); System.out.println("Ferdig med opprettelse av rom"); // Lager shit topPane = new JPanel(new GridBagLayout()); middlePane = new JPanel(new GridBagLayout()); bottomPane = new JPanel(new GridBagLayout()); // Mekker shit payEverything = new JButton("Betal"); deleteSelected = new JButton("Fjern"); addFunds = new JButton("Innskudd"); b = new JButton("Knapp"); back = new JButton("Tilbake"); payEverything.setPreferredSize(new Dimension(100,30)); deleteSelected.setPreferredSize(new Dimension(100,30)); addFunds.setPreferredSize(new Dimension(100,30)); b.setPreferredSize(new Dimension(100,30)); back.setPreferredSize(new Dimension(100,30)); header = new JLabel("Faktura for rom x"); //JListTest invoiceList = new JList(new AbstractListModel() { String[] invoice = faktura.getContent(1); @Override public int getSize() { return invoice.length; } @Override public Object getElementAt(int index) { return invoice[index]; } }); //invoiceList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); invoiceList.setPreferredSize(new Dimension(300,200)); //DefaultListCellRenderer renderer = (DefaultListCellRenderer)invoiceList.getCellRenderer(); //renderer.setHorizontalAlignment(JLabel.CENTER); JScrollPane invoiceScroll = new JScrollPane(invoiceList); invoiceScroll.setPreferredSize(new Dimension (400,190)); //TESTING FTW GridBagConstraints gbcButtons = new GridBagConstraints(); gbcButtons.insets = new Insets(0,10,10,10); GridBagConstraints gbcHeader = new GridBagConstraints(); gbcHeader.insets = new Insets(10,0,0,0); GridBagConstraints gbcList = new GridBagConstraints(); gbcList.insets = new Insets(0,10,10,0); gbcList.fill = GridBagConstraints.BOTH; // Adder til JPanels //gbc.gridx = 0; //gbc.gridy = 0; topPane.add(header, gbcHeader); //gbc.gridx = 1; //gbc.gridy = 1; middlePane.add(invoiceScroll, gbcList); gbcButtons.gridx = 0; //gbc.gridy = 1; bottomPane.add(payEverything, gbcButtons); bottomPane.add(deleteSelected, gbcButtons); bottomPane.add(addFunds, gbcButtons); bottomPane.add(b, gbcButtons); bottomPane.add(back, gbcButtons); // Adder til JFRAME add(topPane, BorderLayout.NORTH); add(middlePane, BorderLayout.WEST); add(bottomPane, BorderLayout.EAST); } } Div metoder fra Invoice og Article klassene public String[] getContent( int x){ double subtotal = 0; System.out.println("subtotal = "+subtotal); double vat = 0; System.out.println("vat = "+vat); System.out.println("Objekt ikke laget: getSize="+getSize()); String[] test = new String[getSize()]; System.out.println("Objekt laget. test.length="+test.length); seeker = head; for (int i=0; i &--#60; test.length ; i++){ System.out.println((i+1)+". Gjennomgang"); //test[i] = ""+seeker.getFirstLine()+ seeker.getSecondLine()+""; test[i] = seeker.toString(); seeker = seeker.next; } return test; } public int getSize(){ int count = 0; if (head == null){ System.out.println("HODE ER NULL"); return 0; } /* else if (seeker.next == null){ System.out.println("søker sin neste er NULL"); return 1; }*/ else{ count++; seeker = head; System.out.println("SEEKER = HEAD"); System.out.println("While begynner"); while (seeker.next != null){ System.out.println("søker sin neste er IKKE NULL"); System.out.println("count = "+count); count++; if (count &--#62;= 10){ System.out.println("COUNT ER STØRRE ELLER LIK 10"); System.out.println("BREAK"); break; } seeker = seeker.next; if (seeker.next == null){ System.out.println("SØKER sin NESTE ER NULL"); System.out.println("BREAK"); break; } } System.out.println("FINAL count ="+count); return count; } } public String toString(){ String output ="&--#60;html&--#62;"+orderline+" "+quantity+" X "+price+" "+(quantity*price)+"&--#60;/html&--#62;"; //String output ="\n\n"+lineNr+" "+orderline+": "+(quantity*price)+",-\n\t\t"+quantity+"*"+price; //String output ="Test"; return output; } Trur det skal være det som har noe med dette å gjøre sånn direkte i hvert fall Takker for alle svar PS: Beklager alle de System.out sakene, brukt til feilsøking og ikke fjerna enda x) heh Endret 30. april 2012 av LimeCut Lenke til kommentar
LimeCut Skrevet 30. april 2012 Forfatter Del Skrevet 30. april 2012 Okai. Da har jeg jo funnet ut at det var noe med html koden elns. Men da står jeg fremdeles igjen med problemet. Jeg vil ha tabulatorspaces inni teksten, sånn at ting blir ryddig og pent å se på. Noen tips?! Lenke til kommentar
Matsemann Skrevet 30. april 2012 Del Skrevet 30. april 2012 Noen tips?! Gå for JTable og style den slik du vil ha den. Hvorfor bruke en JList til å emulere en JTable? Lenke til kommentar
LimeCut Skrevet 1. mai 2012 Forfatter Del Skrevet 1. mai 2012 Fordi jeg synes JList så penere ut, rett og slett. Så dog ikke så nøye på stylinga i JTable. Men nå har jeg fått det til å se ut som jeg vil, så nå er jeg fornøyd og ser på saken som løst Takk for alle svar Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå